]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/ubifs/debug.c
Merge branch 'akpm-current/current'
[karo-tx-linux.git] / fs / ubifs / debug.c
index cc1febd8fadf730ddd2e2dfb78315798508aa408..5157b866a853cf76cfd6bef1c6fd6ab4b49123bf 100644 (file)
@@ -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);
 }
 
 /**