[PATCH 2/2] btrfs: use list_del_each_entry

2013-07-05 Thread Jörn Engel
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

2013-07-05 Thread Jörn Engel
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) {