Btrfs: Add a per-inode csum mutex to avoid races creating csum items
[safe/jmp/linux-2.6] / fs / btrfs / ordered-data.c
index 5e4c0d9..254da82 100644 (file)
@@ -152,12 +152,13 @@ int btrfs_add_ordered_inode(struct inode *inode)
                           inode->i_ino, &entry->rb_node);
 
        BTRFS_I(inode)->ordered_trans = transid;
+       if (!node)
+               igrab(inode);
 
        write_unlock(&tree->lock);
+
        if (node)
                kfree(entry);
-       else
-               igrab(inode);
        return 0;
 }