It's needless of mnt_want_write_file for arguments checking.

Signed-off-by: Kinglong Mee <[email protected]>
---
 fs/f2fs/file.c | 44 ++++++++++++++++++--------------------------
 1 file changed, 18 insertions(+), 26 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index 08bfab3..c407fa6 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -2023,45 +2023,37 @@ static int f2fs_ioc_defragment(struct file *filp, 
unsigned long arg)
        if (!S_ISREG(inode->i_mode))
                return -EINVAL;
 
-       err = mnt_want_write_file(filp);
-       if (err)
-               return err;
-
-       if (f2fs_readonly(sbi->sb)) {
-               err = -EROFS;
-               goto out;
-       }
+       if (f2fs_readonly(sbi->sb))
+               return -EROFS;
 
        if (copy_from_user(&range, (struct f2fs_defragment __user *)arg,
-                                                       sizeof(range))) {
-               err = -EFAULT;
-               goto out;
-       }
+                                                       sizeof(range)))
+               return -EFAULT;
 
        /* verify alignment of offset & size */
-       if (range.start & (F2FS_BLKSIZE - 1) ||
-               range.len & (F2FS_BLKSIZE - 1)) {
-               err = -EINVAL;
-               goto out;
-       }
+       if (range.start & (F2FS_BLKSIZE - 1) || range.len & (F2FS_BLKSIZE - 1))
+               return -EINVAL;
 
        if (unlikely((range.start + range.len) >> PAGE_SHIFT >
-                                       sbi->max_file_blocks)) {
-               err = -EINVAL;
-               goto out;
-       }
+                                       sbi->max_file_blocks))
+               return -EINVAL;
+
+       err = mnt_want_write_file(filp);
+       if (err)
+               return err;
 
        err = f2fs_defragment_range(sbi, filp, &range);
+       mnt_drop_write_file(filp);
+
        f2fs_update_time(sbi, REQ_TIME);
        if (err < 0)
-               goto out;
+               return err;
 
        if (copy_to_user((struct f2fs_defragment __user *)arg, &range,
                                                        sizeof(range)))
-               err = -EFAULT;
-out:
-       mnt_drop_write_file(filp);
-       return err;
+               return -EFAULT;
+
+       return 0;
 }
 
 static int f2fs_move_file_range(struct file *file_in, loff_t pos_in,
-- 
2.9.3


------------------------------------------------------------------------------
Announcing the Oxford Dictionaries API! The API offers world-renowned
dictionary content that is easy and intuitive to access. Sign up for an
account today to start using our lexical data to power your apps and
projects. Get started today and enter our developer competition.
http://sdm.link/oxford
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to