]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
f2fs: introduce release_discard_addr() for cleanup
authorChao Yu <yuchao0@huawei.com>
Wed, 25 Apr 2018 09:38:29 +0000 (17:38 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 31 May 2018 18:31:49 +0000 (11:31 -0700)
Introduce release_discard_addr() to include common codes for cleanup.

Signed-off-by: Chao Yu <yuchao0@huawei.com>
[Fengguang Wu: declare static function, reported by kbuild test robot]
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index fec698d17d6a5a21e912ef2b05c3b7e9d9d0d254..916b16e768fb6a7679b0b49bff305fb8fd717f50 100644 (file)
@@ -1581,16 +1581,20 @@ static bool add_discard_addrs(struct f2fs_sb_info *sbi, struct cp_control *cpc,
        return false;
 }
 
+static void release_discard_addr(struct discard_entry *entry)
+{
+       list_del(&entry->list);
+       kmem_cache_free(discard_entry_slab, entry);
+}
+
 void release_discard_addrs(struct f2fs_sb_info *sbi)
 {
        struct list_head *head = &(SM_I(sbi)->dcc_info->entry_list);
        struct discard_entry *entry, *this;
 
        /* drop caches */
-       list_for_each_entry_safe(entry, this, head, list) {
-               list_del(&entry->list);
-               kmem_cache_free(discard_entry_slab, entry);
-       }
+       list_for_each_entry_safe(entry, this, head, list)
+               release_discard_addr(entry);
 }
 
 /*
@@ -1690,9 +1694,8 @@ void clear_prefree_segments(struct f2fs_sb_info *sbi, struct cp_control *cpc)
                if (cur_pos < sbi->blocks_per_seg)
                        goto find_next;
 
-               list_del(&entry->list);
+               release_discard_addr(entry);
                dcc->nr_discards -= total_len;
-               kmem_cache_free(discard_entry_slab, entry);
        }
 
        wake_up_discard_thread(sbi, false);