[JFFS2] Avoid alloc/dealloc for zero sized nodes
authorArtem B. Bityuckiy <dedekind@infradead.org>
Thu, 7 Jul 2005 15:45:32 +0000 (16:45 +0100)
committerThomas Gleixner <tglx@mtd.linutronix.de>
Tue, 12 Jul 2005 21:55:05 +0000 (23:55 +0200)
Signed-off-by: Artem B. Bityuckiy <dedekind@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
fs/jffs2/readinode.c

index 081656c1d49ec13c2ce615a1108365216eee9d04..8f0be5557ae90fc54cb26743dd2547fb1a963d05 100644 (file)
@@ -7,7 +7,7 @@
  *
  * For licensing information, see the file 'LICENCE' in this directory.
  *
- * $Id: readinode.c,v 1.120 2005/07/05 21:03:07 dwmw2 Exp $
+ * $Id: readinode.c,v 1.124 2005/07/07 15:45:29 dedekind Exp $
  *
  */
 
@@ -151,6 +151,9 @@ int jffs2_add_full_dnode_to_inode(struct jffs2_sb_info *c, struct jffs2_inode_in
 
        D1(printk(KERN_DEBUG "jffs2_add_full_dnode_to_inode(ino #%u, f %p, fn %p)\n", f->inocache->ino, f, fn));
 
+       if (unlikely(!fn->size))
+               return 0;
+
        newfrag = jffs2_alloc_node_frag();
        if (unlikely(!newfrag))
                return -ENOMEM;
@@ -158,11 +161,6 @@ int jffs2_add_full_dnode_to_inode(struct jffs2_sb_info *c, struct jffs2_inode_in
        D2(printk(KERN_DEBUG "adding node %04x-%04x @0x%08x on flash, newfrag *%p\n",
                  fn->ofs, fn->ofs+fn->size, ref_offset(fn->raw), newfrag));
        
-       if (unlikely(!fn->size)) {
-               jffs2_free_node_frag(newfrag);
-               return 0;
-       }
-
        newfrag->ofs = fn->ofs;
        newfrag->size = fn->size;
        newfrag->node = fn;