If the path allocation failed, we would return without decrementing
the reference count in the delayed node we got before, resulting
in a leak.
Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
        mutex_unlock(&delayed_node->mutex);
 
        path = btrfs_alloc_path();
-       if (!path)
+       if (!path) {
+               btrfs_release_delayed_node(delayed_node);
                return -ENOMEM;
+       }
        path->leave_spinning = 1;
 
        block_rsv = trans->block_rsv;