Let's return errors caught by the generic checks. This fixes generic/494 where
it expects to see EBUSY by setattr_prepare instead of EINVAL by f2fs for active
swapfile.

Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
---
 fs/f2fs/file.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c
index bc0ca697e064..bd835c4f874a 100644
--- a/fs/f2fs/file.c
+++ b/fs/f2fs/file.c
@@ -1048,6 +1048,18 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry 
*dentry,
        if (unlikely(f2fs_cp_error(sbi)))
                return -EIO;
 
+       err = setattr_prepare(idmap, dentry, attr);
+       if (err)
+               return err;
+
+       err = fscrypt_prepare_setattr(dentry, attr);
+       if (err)
+               return err;
+
+       err = fsverity_prepare_setattr(dentry, attr);
+       if (err)
+               return err;
+
        if (unlikely(IS_IMMUTABLE(inode)))
                return -EPERM;
 
@@ -1077,18 +1089,6 @@ int f2fs_setattr(struct mnt_idmap *idmap, struct dentry 
*dentry,
                        return -EINVAL;
        }
 
-       err = setattr_prepare(idmap, dentry, attr);
-       if (err)
-               return err;
-
-       err = fscrypt_prepare_setattr(dentry, attr);
-       if (err)
-               return err;
-
-       err = fsverity_prepare_setattr(dentry, attr);
-       if (err)
-               return err;
-
        if (is_quota_modification(idmap, inode, attr)) {
                err = f2fs_dquot_initialize(inode);
                if (err)
-- 
2.50.0.727.gbf7dc18ff4-goog



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to