File tree Expand file tree Collapse file tree 2 files changed +9
-11
lines changed
Documentation/filesystems Expand file tree Collapse file tree 2 files changed +9
-11
lines changed Original file line number Diff line number Diff line change @@ -75,7 +75,7 @@ Here are the main features of EROFS:
75
75
76
76
- Support merging tail-end data into a special inode as fragments.
77
77
78
- - Support large folios for uncompressed files.
78
+ - Support large folios to make use of THPs (Transparent Hugepages);
79
79
80
80
- Support direct I/O on uncompressed files to avoid double caching for loop
81
81
devices;
Original file line number Diff line number Diff line change @@ -257,25 +257,23 @@ static int erofs_fill_inode(struct inode *inode)
257
257
goto out_unlock ;
258
258
}
259
259
260
+ mapping_set_large_folios (inode -> i_mapping );
260
261
if (erofs_inode_is_data_compressed (vi -> datalayout )) {
261
262
#ifdef CONFIG_EROFS_FS_ZIP
262
263
DO_ONCE_LITE_IF (inode -> i_blkbits != PAGE_SHIFT ,
263
264
erofs_info , inode -> i_sb ,
264
265
"EXPERIMENTAL EROFS subpage compressed block support in use. Use at your own risk!" );
265
266
inode -> i_mapping -> a_ops = & z_erofs_aops ;
266
- err = 0 ;
267
- goto out_unlock ;
268
- #endif
267
+ #else
269
268
err = - EOPNOTSUPP ;
270
- goto out_unlock ;
271
- }
272
- inode -> i_mapping -> a_ops = & erofs_raw_access_aops ;
273
- mapping_set_large_folios (inode -> i_mapping );
269
+ #endif
270
+ } else {
271
+ inode -> i_mapping -> a_ops = & erofs_raw_access_aops ;
274
272
#ifdef CONFIG_EROFS_FS_ONDEMAND
275
- if (erofs_is_fscache_mode (inode -> i_sb ))
276
- inode -> i_mapping -> a_ops = & erofs_fscache_access_aops ;
273
+ if (erofs_is_fscache_mode (inode -> i_sb ))
274
+ inode -> i_mapping -> a_ops = & erofs_fscache_access_aops ;
277
275
#endif
278
-
276
+ }
279
277
out_unlock :
280
278
erofs_put_metabuf (& buf );
281
279
return err ;
You can’t perform that action at this time.
0 commit comments