f2fs: fix to check atomic_file in f2fs ioctl interfaces
Subsystems (2)
Chao Yu
maintainerPATCH 1/1 f2fs: fix to check atomic_file in f2fs ioctl interfaces
Some f2fs ioctl interfaces like f2fs_ioc_set_pin_file(), f2fs_move_file_range(), and f2fs_defragment_range() missed to check atomic_write status, which may cause potential race issue, fix it.
Signed-off-by Chao Yu <[email protected]>
--- fs/f2fs/file.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)
fs/f2fs/file.c +12 -1
@@ -2710,7 +2710,8 @@ static int f2fs_defragment_range(struct f2fs_sb_info *sbi, (range->start + range->len) >>PAGE_SHIFT , DIV_ROUND_UP(i_size_read(inode), PAGE_SIZE)); -if (is_inode_flag_set (inode,FI_COMPRESS_RELEASED )) { +if (is_inode_flag_set (inode,FI_COMPRESS_RELEASED ) || +f2fs_is_atomic_file (inode)) { err = -EINVAL ; goto unlock_out; }
@@ -2943,6 +2944,11 @@ static int f2fs_move_file_range(struct file *file_in, loff_t pos_in, goto out_unlock; } +if (f2fs_is_atomic_file (src) ||f2fs_is_atomic_file (dst)) { + ret = -EINVAL ; + goto out_unlock; + } + ret = -EINVAL ;if (pos_in + len > src->i_size || pos_in + len < pos_in) goto out_unlock;
@@ -3326,6 +3332,11 @@ static int f2fs_ioc_set_pin_file(struct file *filp, unsigned long arg)inode_lock (inode); +if (f2fs_is_atomic_file (inode)) { + ret = -EINVAL ; + goto out; + } +if (!pin) {clear_inode_flag (inode,FI_PIN_FILE );f2fs_i_gc_failures_write (inode,0 );
Signature · 1 line
2.40.1
This patch was applied to jaegeuk/f2fs.git (dev) by Jaegeuk Kim <[email protected]>:
Hello:
This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <[email protected]>:
Quoted 9 lines · On Wed, 4 Sep 2024 11:20:47 +0800 you wrote:
Some f2fs ioctl interfaces like
f2fs_ioc_set_pin_file(),f2fs_move_file_range(), andf2fs_defragment_range()missed to checkatomic_writestatus, which may cause potential race issue, fix it.Signed-off-by Chao Yu <[email protected]>[...]
Here is the summary with links:
- [f2fs-dev] f2fs: fix to check atomic_file in f2fs ioctl interfaces
https://git.kernel.org/jaegeuk/f2fs/c/bfe5c0265426
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html