]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
f2fs: shrink sbi->sb_lock coverage in set_file_temperature()
authorChao Yu <yuchao0@huawei.com>
Thu, 4 Oct 2018 03:15:18 +0000 (11:15 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 16 Oct 2018 16:36:59 +0000 (09:36 -0700)
file_set_{cold,hot} doesn't need holding sbi->sb_lock, so moving them
out of the lock.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/namei.c

index a14632744a6af4e86fddacf929e2816c7a8d32d4..d5de8a99532d2cb9a8297ae70b5140e3de8984eb 100644 (file)
@@ -182,16 +182,19 @@ static inline void set_file_temperature(struct f2fs_sb_info *sbi, struct inode *
        hot_count = sbi->raw_super->hot_ext_count;
 
        for (i = 0; i < cold_count + hot_count; i++) {
-               if (!is_extension_exist(name, extlist[i]))
-                       continue;
-               if (i < cold_count)
-                       file_set_cold(inode);
-               else
-                       file_set_hot(inode);
-               break;
+               if (is_extension_exist(name, extlist[i]))
+                       break;
        }
 
        up_read(&sbi->sb_lock);
+
+       if (i == cold_count + hot_count)
+               return;
+
+       if (i < cold_count)
+               file_set_cold(inode);
+       else
+               file_set_hot(inode);
 }
 
 int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name,