Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -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,


		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;
		}
		}