[PATCH 2/2] btrfs: use list_del_each_entry
Signed-off-by: Joern Engel --- fs/btrfs/backref.c | 15 +++ fs/btrfs/compression.c |4 +--- fs/btrfs/disk-io.c |6 +- fs/btrfs/extent-tree.c | 17 +++-- fs/btrfs/extent_io.c|8 ++-- fs/btrfs/inode.c| 16 +++- fs/btrfs/ordered-data.c |7 +-- fs/btrfs/qgroup.c | 22 -- fs/btrfs/relocation.c |6 +- fs/btrfs/scrub.c|9 +++-- fs/btrfs/transaction.c |5 + fs/btrfs/volumes.c | 11 ++- 12 files changed, 25 insertions(+), 101 deletions(-) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index bd605c8..3a45e75 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -893,9 +893,7 @@ again: if (ret) goto out; - while (!list_empty()) { - ref = list_first_entry(, struct __prelim_ref, list); - list_del(>list); + list_del_each_entry(ref, , list) { WARN_ON(ref->count < 0); if (ref->count && ref->root_id && ref->parent == 0) { /* no parent == root of tree */ @@ -937,17 +935,10 @@ again: out: btrfs_free_path(path); - while (!list_empty()) { - ref = list_first_entry(, struct __prelim_ref, list); - list_del(>list); + list_del_each_entry(ref, , list) kfree(ref); - } - while (!list_empty(_delayed)) { - ref = list_first_entry(_delayed, struct __prelim_ref, - list); - list_del(>list); + list_del_each_entry(ref, _delayed, list) kfree(ref); - } return ret; } diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 15b9408..e5a7475 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -841,9 +841,7 @@ static void free_workspaces(void) int i; for (i = 0; i < BTRFS_COMPRESS_TYPES; i++) { - while (!list_empty(_idle_workspace[i])) { - workspace = comp_idle_workspace[i].next; - list_del(workspace); + list_del_each(workspace, _idle_workspace[i]) { btrfs_compress_op[i]->free_workspace(workspace); atomic_dec(_alloc_workspace[i]); } diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 6d19a0a..2767b18 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -3289,11 +3289,7 @@ static void del_fs_roots(struct btrfs_fs_info *fs_info) struct btrfs_root *gang[8]; int i; - while (!list_empty(_info->dead_roots)) { - gang[0] = list_entry(fs_info->dead_roots.next, -struct btrfs_root, root_list); - list_del([0]->root_list); - + list_del_each_entry(gang[0], _info->dead_roots, root_list) { if (gang[0]->in_radix) { btrfs_free_fs_root(fs_info, gang[0]); } else { diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 3d55123..f7afb9e 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -2435,10 +2435,7 @@ int btrfs_delayed_refs_qgroup_accounting(struct btrfs_trans_handle *trans, if (!trans->delayed_ref_elem.seq) return 0; - while (!list_empty(>qgroup_ref_list)) { - qgroup_update = list_first_entry(>qgroup_ref_list, -struct qgroup_update, list); - list_del(_update->list); + list_del_each_entry(qgroup_update, >qgroup_ref_list, list) { if (!ret) ret = btrfs_qgroup_account_ref( trans, fs_info, qgroup_update->node, @@ -7821,12 +7818,8 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info) struct rb_node *n; down_write(>extent_commit_sem); - while (!list_empty(>caching_block_groups)) { - caching_ctl = list_entry(info->caching_block_groups.next, -struct btrfs_caching_control, list); - list_del(_ctl->list); + list_del_each_entry(caching_ctl, >caching_block_groups, list) put_caching_control(caching_ctl); - } up_write(>extent_commit_sem); spin_lock(>block_group_cache_lock); @@ -7868,10 +7861,7 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info) release_global_block_rsv(info); - while(!list_empty(>space_info)) { - space_info = list_entry(info->space_info.next, - struct btrfs_space_info, - list); + list_del_each_entry(space_info, >space_info, list) { if (btrfs_test_opt(info->tree_root, ENOSPC_DEBUG)) { if (space_info->bytes_pinned > 0 ||
[PATCH 2/2] btrfs: use list_del_each_entry
Signed-off-by: Joern Engel jo...@logfs.org --- fs/btrfs/backref.c | 15 +++ fs/btrfs/compression.c |4 +--- fs/btrfs/disk-io.c |6 +- fs/btrfs/extent-tree.c | 17 +++-- fs/btrfs/extent_io.c|8 ++-- fs/btrfs/inode.c| 16 +++- fs/btrfs/ordered-data.c |7 +-- fs/btrfs/qgroup.c | 22 -- fs/btrfs/relocation.c |6 +- fs/btrfs/scrub.c|9 +++-- fs/btrfs/transaction.c |5 + fs/btrfs/volumes.c | 11 ++- 12 files changed, 25 insertions(+), 101 deletions(-) diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index bd605c8..3a45e75 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c @@ -893,9 +893,7 @@ again: if (ret) goto out; - while (!list_empty(prefs)) { - ref = list_first_entry(prefs, struct __prelim_ref, list); - list_del(ref-list); + list_del_each_entry(ref, prefs, list) { WARN_ON(ref-count 0); if (ref-count ref-root_id ref-parent == 0) { /* no parent == root of tree */ @@ -937,17 +935,10 @@ again: out: btrfs_free_path(path); - while (!list_empty(prefs)) { - ref = list_first_entry(prefs, struct __prelim_ref, list); - list_del(ref-list); + list_del_each_entry(ref, prefs, list) kfree(ref); - } - while (!list_empty(prefs_delayed)) { - ref = list_first_entry(prefs_delayed, struct __prelim_ref, - list); - list_del(ref-list); + list_del_each_entry(ref, prefs_delayed, list) kfree(ref); - } return ret; } diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c index 15b9408..e5a7475 100644 --- a/fs/btrfs/compression.c +++ b/fs/btrfs/compression.c @@ -841,9 +841,7 @@ static void free_workspaces(void) int i; for (i = 0; i BTRFS_COMPRESS_TYPES; i++) { - while (!list_empty(comp_idle_workspace[i])) { - workspace = comp_idle_workspace[i].next; - list_del(workspace); + list_del_each(workspace, comp_idle_workspace[i]) { btrfs_compress_op[i]-free_workspace(workspace); atomic_dec(comp_alloc_workspace[i]); } diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 6d19a0a..2767b18 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -3289,11 +3289,7 @@ static void del_fs_roots(struct btrfs_fs_info *fs_info) struct btrfs_root *gang[8]; int i; - while (!list_empty(fs_info-dead_roots)) { - gang[0] = list_entry(fs_info-dead_roots.next, -struct btrfs_root, root_list); - list_del(gang[0]-root_list); - + list_del_each_entry(gang[0], fs_info-dead_roots, root_list) { if (gang[0]-in_radix) { btrfs_free_fs_root(fs_info, gang[0]); } else { diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 3d55123..f7afb9e 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -2435,10 +2435,7 @@ int btrfs_delayed_refs_qgroup_accounting(struct btrfs_trans_handle *trans, if (!trans-delayed_ref_elem.seq) return 0; - while (!list_empty(trans-qgroup_ref_list)) { - qgroup_update = list_first_entry(trans-qgroup_ref_list, -struct qgroup_update, list); - list_del(qgroup_update-list); + list_del_each_entry(qgroup_update, trans-qgroup_ref_list, list) { if (!ret) ret = btrfs_qgroup_account_ref( trans, fs_info, qgroup_update-node, @@ -7821,12 +7818,8 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info) struct rb_node *n; down_write(info-extent_commit_sem); - while (!list_empty(info-caching_block_groups)) { - caching_ctl = list_entry(info-caching_block_groups.next, -struct btrfs_caching_control, list); - list_del(caching_ctl-list); + list_del_each_entry(caching_ctl, info-caching_block_groups, list) put_caching_control(caching_ctl); - } up_write(info-extent_commit_sem); spin_lock(info-block_group_cache_lock); @@ -7868,10 +7861,7 @@ int btrfs_free_block_groups(struct btrfs_fs_info *info) release_global_block_rsv(info); - while(!list_empty(info-space_info)) { - space_info = list_entry(info-space_info.next, - struct btrfs_space_info, - list); + list_del_each_entry(space_info, info-space_info, list) {