diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-12 20:28:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2019-07-12 20:28:24 -0400 |
commit | a641a88e5d6864f20b2608cb01165c756794e645 (patch) | |
tree | 5acf37ca592a87d705169174b51feb47bd253fa9 /fs/f2fs/inline.c | |
parent | 4ce9d181ebe53abbca5f450b8a2984b8c3a38f26 (diff) | |
parent | 2d008835ec2fcf6eef3285e41e62a5eabd1fe76b (diff) |
Merge tag 'f2fs-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs
Pull f2fs updates from Jaegeuk Kim:
"In this round, we've introduced native swap file support which can
exploit DIO, enhanced existing checkpoint=disable feature with
additional mount option to tune the triggering condition, and allowed
user to preallocate physical blocks in a pinned file which will be
useful to avoid f2fs fragmentation in append-only workloads. In
addition, we've fixed subtle quota corruption issue.
Enhancements:
- add swap file support which uses DIO
- allocate blocks for pinned file
- allow SSR and mount option to enhance checkpoint=disable
- enhance IPU IOs
- add more sanity checks such as memory boundary access
Bug fixes:
- quota corruption in very corner case of error-injected SPO case
- fix root_reserved on remount and some wrong counts
- add missing fsck flag
Some patches were also introduced to clean up ambiguous i_flags and
debugging messages codes"
* tag 'f2fs-for-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (33 commits)
f2fs: improve print log in f2fs_sanity_check_ckpt()
f2fs: avoid out-of-range memory access
f2fs: fix to avoid long latency during umount
f2fs: allow all the users to pin a file
f2fs: support swap file w/ DIO
f2fs: allocate blocks for pinned file
f2fs: fix is_idle() check for discard type
f2fs: add a rw_sem to cover quota flag changes
f2fs: set SBI_NEED_FSCK for xattr corruption case
f2fs: use generic EFSBADCRC/EFSCORRUPTED
f2fs: Use DIV_ROUND_UP() instead of open-coding
f2fs: print kernel message if filesystem is inconsistent
f2fs: introduce f2fs_<level> macros to wrap f2fs_printk()
f2fs: avoid get_valid_blocks() for cleanup
f2fs: ioctl for removing a range from F2FS
f2fs: only set project inherit bit for directory
f2fs: separate f2fs i_flags from fs_flags and ext4 i_flags
f2fs: replace ktype default_attrs with default_groups
f2fs: Add option to limit required GC for checkpoint=disable
f2fs: Fix accounting for unusable blocks
...
Diffstat (limited to 'fs/f2fs/inline.c')
-rw-r--r-- | fs/f2fs/inline.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 404d2462a0fe..3613efca8c00 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c | |||
@@ -140,11 +140,9 @@ int f2fs_convert_inline_page(struct dnode_of_data *dn, struct page *page) | |||
140 | if (unlikely(dn->data_blkaddr != NEW_ADDR)) { | 140 | if (unlikely(dn->data_blkaddr != NEW_ADDR)) { |
141 | f2fs_put_dnode(dn); | 141 | f2fs_put_dnode(dn); |
142 | set_sbi_flag(fio.sbi, SBI_NEED_FSCK); | 142 | set_sbi_flag(fio.sbi, SBI_NEED_FSCK); |
143 | f2fs_msg(fio.sbi->sb, KERN_WARNING, | 143 | f2fs_warn(fio.sbi, "%s: corrupted inline inode ino=%lx, i_addr[0]:0x%x, run fsck to fix.", |
144 | "%s: corrupted inline inode ino=%lx, i_addr[0]:0x%x, " | 144 | __func__, dn->inode->i_ino, dn->data_blkaddr); |
145 | "run fsck to fix.", | 145 | return -EFSCORRUPTED; |
146 | __func__, dn->inode->i_ino, dn->data_blkaddr); | ||
147 | return -EINVAL; | ||
148 | } | 146 | } |
149 | 147 | ||
150 | f2fs_bug_on(F2FS_P_SB(page), PageWriteback(page)); | 148 | f2fs_bug_on(F2FS_P_SB(page), PageWriteback(page)); |
@@ -383,11 +381,9 @@ static int f2fs_move_inline_dirents(struct inode *dir, struct page *ipage, | |||
383 | if (unlikely(dn.data_blkaddr != NEW_ADDR)) { | 381 | if (unlikely(dn.data_blkaddr != NEW_ADDR)) { |
384 | f2fs_put_dnode(&dn); | 382 | f2fs_put_dnode(&dn); |
385 | set_sbi_flag(F2FS_P_SB(page), SBI_NEED_FSCK); | 383 | set_sbi_flag(F2FS_P_SB(page), SBI_NEED_FSCK); |
386 | f2fs_msg(F2FS_P_SB(page)->sb, KERN_WARNING, | 384 | f2fs_warn(F2FS_P_SB(page), "%s: corrupted inline inode ino=%lx, i_addr[0]:0x%x, run fsck to fix.", |
387 | "%s: corrupted inline inode ino=%lx, i_addr[0]:0x%x, " | 385 | __func__, dir->i_ino, dn.data_blkaddr); |
388 | "run fsck to fix.", | 386 | err = -EFSCORRUPTED; |
389 | __func__, dir->i_ino, dn.data_blkaddr); | ||
390 | err = -EINVAL; | ||
391 | goto out; | 387 | goto out; |
392 | } | 388 | } |
393 | 389 | ||