Re: [PATCH] btrfs: unlock i_mutex after attempting to delete subvolume during send

From: David Sterba
Date: Mon Mar 30 2015 - 09:00:14 EST


On Sat, Mar 28, 2015 at 04:02:06AM -0700, Omar Sandoval wrote:
> Whenever the check for a send in progress introduced in commit
> 521e0546c970 (btrfs: protect snapshots from deleting during send) is
> hit, we return without unlocking inode->i_mutex. This is easy to see
> with lockdep enabled:
>
> [ +0.000059] ================================================
> [ +0.000028] [ BUG: lock held when returning to user space! ]
> [ +0.000029] 4.0.0-rc5-00096-g3c435c1 #93 Not tainted
> [ +0.000026] ------------------------------------------------
> [ +0.000029] btrfs/211 is leaving the kernel with locks still held!
> [ +0.000029] 1 lock held by btrfs/211:
> [ +0.000023] #0: (&type->i_mutex_dir_key){+.+.+.}, at: [<ffffffff8135b8df>] btrfs_ioctl_snap_destroy+0x2df/0x7a0
>
> Make sure we unlock it in the error path.
>
> Signed-off-by: Omar Sandoval <osandov@xxxxxxxxxxx>

Reviewed-by: David Sterba <dsterba@xxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/