Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[pandora-kernel.git] / fs / btrfs / delayed-inode.c
index c25405f..6462c29 100644 (file)
@@ -678,6 +678,7 @@ static int btrfs_batch_insert_items(struct btrfs_trans_handle *trans,
        INIT_LIST_HEAD(&head);
 
        next = item;
+       nitems = 0;
 
        /*
         * count the number of the continuous items that we can insert in batch
@@ -813,7 +814,7 @@ do_again:
 
        ret = btrfs_insert_delayed_item(trans, root, path, curr);
        if (ret < 0) {
-               btrfs_release_path(root, path);
+               btrfs_release_path(path);
                goto insert_end;
        }
 
@@ -827,7 +828,7 @@ do_again:
        btrfs_release_delayed_item(prev);
        btrfs_mark_buffer_dirty(path->nodes[0]);
 
-       btrfs_release_path(root, path);
+       btrfs_release_path(path);
        mutex_unlock(&node->mutex);
        goto do_again;
 
@@ -925,7 +926,7 @@ do_again:
                curr = __btrfs_next_delayed_item(prev);
                btrfs_release_delayed_item(prev);
                ret = 0;
-               btrfs_release_path(root, path);
+               btrfs_release_path(path);
                if (curr)
                        goto do_again;
                else
@@ -933,12 +934,12 @@ do_again:
        }
 
        btrfs_batch_delete_items(trans, root, path, curr);
-       btrfs_release_path(root, path);
+       btrfs_release_path(path);
        mutex_unlock(&node->mutex);
        goto do_again;
 
 delete_fail:
-       btrfs_release_path(root, path);
+       btrfs_release_path(path);
        mutex_unlock(&node->mutex);
        return ret;
 }
@@ -982,7 +983,7 @@ static int btrfs_update_delayed_inode(struct btrfs_trans_handle *trans,
        key.offset = 0;
        ret = btrfs_lookup_inode(trans, root, path, &key, 1);
        if (ret > 0) {
-               btrfs_release_path(root, path);
+               btrfs_release_path(path);
                mutex_unlock(&node->mutex);
                return -ENOENT;
        } else if (ret < 0) {
@@ -997,7 +998,7 @@ static int btrfs_update_delayed_inode(struct btrfs_trans_handle *trans,
        write_extent_buffer(leaf, &node->inode_item, (unsigned long)inode_item,
                            sizeof(struct btrfs_inode_item));
        btrfs_mark_buffer_dirty(leaf);
-       btrfs_release_path(root, path);
+       btrfs_release_path(path);
 
        btrfs_delayed_inode_release_metadata(root, node);
        btrfs_release_delayed_inode(node);
@@ -1129,7 +1130,7 @@ static void btrfs_async_run_delayed_node_done(struct btrfs_work *work)
        delayed_node = async_node->delayed_node;
        root = delayed_node->root;
 
-       trans = btrfs_join_transaction(root, 0);
+       trans = btrfs_join_transaction(root);
        if (IS_ERR(trans))
                goto free_path;
 
@@ -1572,8 +1573,7 @@ static void fill_stack_inode_item(struct btrfs_trans_handle *trans,
        btrfs_set_stack_inode_transid(inode_item, trans->transid);
        btrfs_set_stack_inode_rdev(inode_item, inode->i_rdev);
        btrfs_set_stack_inode_flags(inode_item, BTRFS_I(inode)->flags);
-       btrfs_set_stack_inode_block_group(inode_item,
-                                         BTRFS_I(inode)->block_group);
+       btrfs_set_stack_inode_block_group(inode_item, 0);
 
        btrfs_set_stack_timespec_sec(btrfs_inode_atime(inode_item),
                                     inode->i_atime.tv_sec);
@@ -1595,7 +1595,7 @@ int btrfs_delayed_update_inode(struct btrfs_trans_handle *trans,
                               struct btrfs_root *root, struct inode *inode)
 {
        struct btrfs_delayed_node *delayed_node;
-       int ret;
+       int ret = 0;
 
        delayed_node = btrfs_get_or_create_delayed_node(inode);
        if (IS_ERR(delayed_node))