Pull f2fs updates from Jaegeuk Kim: "In this round, we introduced casefolding support in f2fs, and fixed various bugs in individual features such as IO alignment, checkpoint=disable, quota, and swapfile. Enhancement: - support casefolding w/ enhancement in ext4 - support fiemap for directory - support FS_IO_GET|SET_FSLABEL Bug fix: - fix IO stuck during checkpoint=disable - avoid infinite GC loop - fix panic/overflow related to IO alignment feature - fix livelock in swap file - fix discard command leak - disallow dio for atomic_write" * tag 'f2fs-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (51 commits) f2fs: add a condition to detect overflow in f2fs_ioc_gc_range() f2fs: fix to add missing F2FS_IO_ALIGNED() condition f2fs: fix to fallback to buffered IO in IO aligned mode f2fs: fix to handle error path correctly in f2fs_map_blocks f2fs: fix extent corrupotion during directIO in LFS mode f2fs: check all the data segments against all node ones f2fs: Add a small clarification to CONFIG_FS_F2FS_FS_SECURITY f2fs: fix inode rwsem regression f2fs: fix to avoid accessing uninitialized field of inode page in is_alive() f2fs: avoid infinite GC loop due to stale atomic files f2fs: Fix indefinite loop in f2fs_gc() f2fs: convert inline_data in prior to i_size_write f2fs: fix error path of f2fs_convert_inline_page() f2fs: add missing documents of reserve_root/resuid/resgid f2fs: fix flushing node pages when checkpoint is disabled f2fs: enhance f2fs_is_checkpoint_ready()'s readability f2fs: clean up __bio_alloc()'s parameter f2fs: fix wrong error injection path in inc_valid_block_count() f2fs: fix to writeout dirty inode during node flush f2fs: optimize case-insensitive lookups ...
Showing the changes to include/linux (1 of 22 files). Show all
Unified · Split
| @@ -36,11 +36,17 @@ · 35 unmodified lines | |||
| 36 | 36 | ||
| 37 | #define F2FS_MAX_QUOTAS 3 | 37 | #define F2FS_MAX_QUOTAS 3 |
| 38 | 38 | ||
| 39 | #define F2FS_ENC_UTF8_12_1 1 | ||
| 40 | #define F2FS_ENC_STRICT_MODE_FL (1 << 0) | ||
| 41 | #define f2fs_has_strict_mode(sbi) \ | ||
| 42 | (sbi->s_encoding_flags & F2FS_ENC_STRICT_MODE_FL) | ||
| 43 | |||
| 39 | #define F2FS_IO_SIZE(sbi) (1 << F2FS_OPTION(sbi).write_io_size_bits) /* Blocks */ | 44 | #define F2FS_IO_SIZE(sbi) (1 << F2FS_OPTION(sbi).write_io_size_bits) /* Blocks */ |
| 40 | #define F2FS_IO_SIZE_KB(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits + 2)) /* KB */ | 45 | #define F2FS_IO_SIZE_KB(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits + 2)) /* KB */ |
| 41 | #define F2FS_IO_SIZE_BYTES(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits + 12)) /* B */ | 46 | #define F2FS_IO_SIZE_BYTES(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits + 12)) /* B */ |
| 42 | #define F2FS_IO_SIZE_BITS(sbi) (F2FS_OPTION(sbi).write_io_size_bits) /* power of 2 */ | 47 | #define F2FS_IO_SIZE_BITS(sbi) (F2FS_OPTION(sbi).write_io_size_bits) /* power of 2 */ |
| 43 | #define F2FS_IO_SIZE_MASK(sbi) (F2FS_IO_SIZE(sbi) - 1) | 48 | #define F2FS_IO_SIZE_MASK(sbi) (F2FS_IO_SIZE(sbi) - 1) |
| 49 | #define F2FS_IO_ALIGNED(sbi) (F2FS_IO_SIZE(sbi) > 1) | ||
| 44 | 50 | ||
| 45 | /* This flag is used by node and meta inodes, and by recovery */ | 51 | /* This flag is used by node and meta inodes, and by recovery */ |
| 46 | #define GFP_F2FS_ZERO (GFP_NOFS | __GFP_ZERO) | 52 | #define GFP_F2FS_ZERO (GFP_NOFS | __GFP_ZERO) |
| @@ -109,7 +115,9 @@ struct f2fs_super_block { · 62 unmodified lines | |||
| 109 | struct f2fs_device devs[MAX_DEVICES]; /* device list */ | 115 | struct f2fs_device devs[MAX_DEVICES]; /* device list */ |
| 110 | __le32 qf_ino[F2FS_MAX_QUOTAS]; /* quota inode numbers */ | 116 | __le32 qf_ino[F2FS_MAX_QUOTAS]; /* quota inode numbers */ |
| 111 | __u8 hot_ext_count; /* # of hot file extension */ | 117 | __u8 hot_ext_count; /* # of hot file extension */ |
| 112 | __u8 reserved[310]; /* valid reserved region */ | 118 | __le16 s_encoding; /* Filename charset encoding */ |
| 119 | __le16 s_encoding_flags; /* Filename charset encoding flags */ | ||
| 120 | __u8 reserved[306]; /* valid reserved region */ | ||
| 113 | __le32 crc; /* checksum of superblock */ | 121 | __le32 crc; /* checksum of superblock */ |
| 114 | } __packed; | 122 | } __packed; |
| 115 | 123 | ||