Changeset 1465e70c in rtems


Ignore:
Timestamp:
Jan 23, 2014, 11:56:11 PM (5 years ago)
Author:
Cody P Schafer <cody@…>
Branches:
master
Children:
e650f4fc
Parents:
22d9575
git-author:
Cody P Schafer <cody@…> (01/23/14 23:56:11)
git-committer:
Sebastian Huber <sebastian.huber@…> (07/16/18 05:22:11)
Message:

fs/jffs2: 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@…>
Cc: Michel Lespinasse <walken@…>
Cc: Jan Kara <jack@…>
Cc: David Woodhouse <dwmw2@…>
Signed-off-by: Andrew Morton <akpm@…>
Signed-off-by: Linus Torvalds <torvalds@…>

Location:
cpukit/libfs/src/jffs2/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/libfs/src/jffs2/src/nodelist.c

    r22d9575 r1465e70c  
    567567void jffs2_kill_fragtree(struct rb_root *root, struct jffs2_sb_info *c)
    568568{
    569         struct jffs2_node_frag *frag;
    570         struct jffs2_node_frag *parent;
    571 
    572         if (!root->rb_node)
    573                 return;
     569        struct jffs2_node_frag *frag, *next;
    574570
    575571        dbg_fragtree("killing\n");
    576 
    577         frag = (rb_entry(root->rb_node, struct jffs2_node_frag, rb));
    578         while(frag) {
    579                 if (frag->rb.rb_left) {
    580                         frag = frag_left(frag);
    581                         continue;
    582                 }
    583                 if (frag->rb.rb_right) {
    584                         frag = frag_right(frag);
    585                         continue;
    586                 }
    587 
     572        rbtree_postorder_for_each_entry_safe(frag, next, root, rb) {
    588573                if (frag->node && !(--frag->node->frags)) {
    589574                        /* Not a hole, and it's the final remaining frag
     
    594579                        jffs2_free_full_dnode(frag->node);
    595580                }
    596                 parent = frag_parent(frag);
    597                 if (parent) {
    598                         if (frag_left(parent) == frag)
    599                                 parent->rb.rb_left = NULL;
    600                         else
    601                                 parent->rb.rb_right = NULL;
    602                 }
    603581
    604582                jffs2_free_node_frag(frag);
    605                 frag = parent;
    606 
    607583                cond_resched();
    608584        }
  • cpukit/libfs/src/jffs2/src/readinode.c

    r22d9575 r1465e70c  
    553553static void jffs2_free_tmp_dnode_info_list(struct rb_root *list)
    554554{
    555         struct rb_node *this;
    556         struct jffs2_tmp_dnode_info *tn;
    557 
    558         this = list->rb_node;
    559 
    560         /* Now at bottom of tree */
    561         while (this) {
    562                 if (this->rb_left)
    563                         this = this->rb_left;
    564                 else if (this->rb_right)
    565                         this = this->rb_right;
    566                 else {
    567                         tn = rb_entry(this, struct jffs2_tmp_dnode_info, rb);
     555        struct jffs2_tmp_dnode_info *tn, *next;
     556
     557        rbtree_postorder_for_each_entry_safe(tn, next, list, rb) {
    568558                        jffs2_free_full_dnode(tn->fn);
    569559                        jffs2_free_tmp_dnode_info(tn);
    570 
    571                         this = rb_parent(this);
    572                         if (!this)
    573                                 break;
    574 
    575                         if (this->rb_left == &tn->rb)
    576                                 this->rb_left = NULL;
    577                         else if (this->rb_right == &tn->rb)
    578                                 this->rb_right = NULL;
    579                         else BUG();
    580                 }
    581         }
     560        }
     561
    582562        *list = RB_ROOT;
    583563}
Note: See TracChangeset for help on using the changeset viewer.