Message ID | 20230425151126.50566-1-frank.li@vivo.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [f2fs-dev] f2fs: do not allow to defragment files have FI_COMPRESS_RELEASED | expand |
On 2023/4/25 23:11, Yangtao Li wrote: > If a file has FI_COMPRESS_RELEASED, all writes for it should not be > allowed. > > Fixes: 5fdb322ff2c2 ("f2fs: add F2FS_IOC_DECOMPRESS_FILE and F2FS_IOC_COMPRESS_FILE") > Signed-off-by: Qi Han <hanqi@vivo.com> > Signed-off-by: Yangtao Li <frank.li@vivo.com> > --- > fs/f2fs/file.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c > index 9c9c3f660e01..c21d6a829c4a 100644 > --- a/fs/f2fs/file.c > +++ b/fs/f2fs/file.c > @@ -2734,6 +2734,9 @@ static int f2fs_ioc_defragment(struct file *filp, unsigned long arg) > if (f2fs_readonly(sbi->sb)) > return -EROFS; > > + if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) > + return -EINVAL; This flag should be checked w/ inode lock. Thanks, > + > if (copy_from_user(&range, (struct f2fs_defragment __user *)arg, > sizeof(range))) > return -EFAULT;
diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 9c9c3f660e01..c21d6a829c4a 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -2734,6 +2734,9 @@ static int f2fs_ioc_defragment(struct file *filp, unsigned long arg) if (f2fs_readonly(sbi->sb)) return -EROFS; + if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) + return -EINVAL; + if (copy_from_user(&range, (struct f2fs_defragment __user *)arg, sizeof(range))) return -EFAULT;