ext4: refactoring to use the unified helper ext4_quotas_off()
authorBaokun Li <libaokun1@huawei.com>
Mon, 27 Mar 2023 14:16:30 +0000 (22:16 +0800)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 26 Jun 2023 23:36:44 +0000 (19:36 -0400)
Rename ext4_quota_off_umount() to ext4_quotas_off(), and add type
parameter to replace open code in ext4_enable_quotas().

Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://lore.kernel.org/r/20230327141630.156875-3-libaokun1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
fs/ext4/super.c

index 1cc60a7..b3819e7 100644 (file)
@@ -1165,12 +1165,12 @@ static void dump_orphan_list(struct super_block *sb, struct ext4_sb_info *sbi)
 #ifdef CONFIG_QUOTA
 static int ext4_quota_off(struct super_block *sb, int type);
 
-static inline void ext4_quota_off_umount(struct super_block *sb)
+static inline void ext4_quotas_off(struct super_block *sb, int type)
 {
-       int type;
+       BUG_ON(type > EXT4_MAXQUOTAS);
 
        /* Use our quota_off function to clear inode flags etc. */
-       for (type = 0; type < EXT4_MAXQUOTAS; type++)
+       for (type--; type >= 0; type--)
                ext4_quota_off(sb, type);
 }
 
@@ -1186,7 +1186,7 @@ static inline char *get_qf_name(struct super_block *sb,
                                         lockdep_is_held(&sb->s_umount));
 }
 #else
-static inline void ext4_quota_off_umount(struct super_block *sb)
+static inline void ext4_quotas_off(struct super_block *sb, int type)
 {
 }
 #endif
@@ -1286,7 +1286,7 @@ static void ext4_put_super(struct super_block *sb)
                         &sb->s_uuid);
 
        ext4_unregister_li_request(sb);
-       ext4_quota_off_umount(sb);
+       ext4_quotas_off(sb, EXT4_MAXQUOTAS);
 
        flush_work(&sbi->s_error_work);
        destroy_workqueue(sbi->rsv_conversion_wq);
@@ -5597,7 +5597,7 @@ static int __ext4_fill_super(struct fs_context *fc, struct super_block *sb)
        return 0;
 
 failed_mount10:
-       ext4_quota_off_umount(sb);
+       ext4_quotas_off(sb, EXT4_MAXQUOTAS);
 failed_mount9: __maybe_unused
        ext4_release_orphan_info(sb);
 failed_mount8:
@@ -7044,20 +7044,8 @@ int ext4_enable_quotas(struct super_block *sb)
                                        "(type=%d, err=%d, ino=%lu). "
                                        "Please run e2fsck to fix.", type,
                                        err, qf_inums[type]);
-                               for (type--; type >= 0; type--) {
-                                       struct inode *inode;
-
-                                       inode = sb_dqopt(sb)->files[type];
-                                       if (inode)
-                                               inode = igrab(inode);
-                                       dquot_quota_off(sb, type);
-                                       if (inode) {
-                                               lockdep_set_quota_inode(inode,
-                                                       I_DATA_SEM_NORMAL);
-                                               iput(inode);
-                                       }
-                               }
 
+                               ext4_quotas_off(sb, type);
                                return err;
                        }
                }