]> git.baikalelectronics.ru Git - kernel.git/commit
Btrfs: Fix a crash when mounting a subvolume
authorLi Zefan <lizf@cn.fujitsu.com>
Tue, 7 Dec 2010 01:51:26 +0000 (01:51 +0000)
committerChris Mason <chris.mason@oracle.com>
Fri, 10 Dec 2010 21:29:10 +0000 (16:29 -0500)
commitb9639bd732a46faba9c3481fd611f6e3349dc5ea
tree5e8b6c5e0b0b35c65ed509029cda85bd54a8aab8
parent6899dc0617d60cbab99326c22449b416f7f6a4c0
Btrfs: Fix a crash when mounting a subvolume

We should drop dentry before deactivating the superblock, otherwise
we can hit this bug:

BUG: Dentry f349a690{i=100,n=/} still in use (1) [unmount of btrfs loop1]
...

Steps to reproduce the bug:

  # mount /dev/loop1 /mnt
  # mkdir save
  # btrfs subvolume snapshot /mnt save/snap1
  # umount /mnt
  # mount -o subvol=save/snap1 /dev/loop1 /mnt
  (crash)

Reported-by: Michael Niederle <mniederle@gmx.at>
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/super.c