Commit 253beebd authored by Dan Carpenter's avatar Dan Carpenter Committed by David Sterba

Btrfs: double unlock bug in error handling

The caller expects this function to return with the lock held and
releases it immediately on error.
Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
parent 5cf1ab56
...@@ -2301,6 +2301,7 @@ static noinline int run_clustered_refs(struct btrfs_trans_handle *trans, ...@@ -2301,6 +2301,7 @@ static noinline int run_clustered_refs(struct btrfs_trans_handle *trans,
if (ret) { if (ret) {
printk(KERN_DEBUG "btrfs: run_delayed_extent_op returned %d\n", ret); printk(KERN_DEBUG "btrfs: run_delayed_extent_op returned %d\n", ret);
spin_lock(&delayed_refs->lock);
return ret; return ret;
} }
...@@ -2331,6 +2332,7 @@ static noinline int run_clustered_refs(struct btrfs_trans_handle *trans, ...@@ -2331,6 +2332,7 @@ static noinline int run_clustered_refs(struct btrfs_trans_handle *trans,
if (ret) { if (ret) {
printk(KERN_DEBUG "btrfs: run_one_delayed_ref returned %d\n", ret); printk(KERN_DEBUG "btrfs: run_one_delayed_ref returned %d\n", ret);
spin_lock(&delayed_refs->lock);
return ret; return ret;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment