diff options
author | 2014-01-23 15:56:08 -0800 | |
---|---|---|
committer | 2014-01-23 16:37:03 -0800 | |
commit | bb25e49ff8ab0ef0b3c073c09d55cf10ef8a2aa0 (patch) | |
tree | 0eb5d1ca02d4e9caccd9716e35d5baa448eb73c8 /fs/ubifs/debug.c | |
parent | net/netfilter/ipset/ip_set_hash_netiface.c: use rbtree postorder iteration in... (diff) | |
download | linux-bb25e49ff8ab0ef0b3c073c09d55cf10ef8a2aa0.tar.gz linux-bb25e49ff8ab0ef0b3c073c09d55cf10ef8a2aa0.tar.bz2 linux-bb25e49ff8ab0ef0b3c073c09d55cf10ef8a2aa0.zip |
fs/ubifs: use rbtree postorder iteration helper instead of opencoding
Use rbtree_postorder_for_each_entry_safe() to destroy the rbtree instead
of opencoding an alternate postorder iteration that modifies the tree
Signed-off-by: Cody P Schafer <cody@linux.vnet.ibm.com>
Cc: Michel Lespinasse <walken@google.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Artem Bityutskiy <dedekind1@gmail.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ubifs/debug.c')
-rw-r--r-- | fs/ubifs/debug.c | 22 |
1 files changed, 3 insertions, 19 deletions
diff --git a/fs/ubifs/debug.c b/fs/ubifs/debug.c index cc1febd8fadf..5157b866a853 100644 --- a/fs/ubifs/debug.c +++ b/fs/ubifs/debug.c @@ -2118,26 +2118,10 @@ out_free: */ static void free_inodes(struct fsck_data *fsckd) { - struct rb_node *this = fsckd->inodes.rb_node; - struct fsck_inode *fscki; + struct fsck_inode *fscki, *n; - while (this) { - if (this->rb_left) - this = this->rb_left; - else if (this->rb_right) - this = this->rb_right; - else { - fscki = rb_entry(this, struct fsck_inode, rb); - this = rb_parent(this); - if (this) { - if (this->rb_left == &fscki->rb) - this->rb_left = NULL; - else - this->rb_right = NULL; - } - kfree(fscki); - } - } + rbtree_postorder_for_each_entry_safe(fscki, n, &fsckd->inodes, rb) + kfree(fscki); } /** |