8.1-STABLE: problem with unmounting ZFS snapshots

Andriy Gapon avg at freebsd.org
Sat Nov 13 11:11:19 UTC 2010

on 13/11/2010 13:06 Martin Matuska said the following:
> No, this is not good for us. Solaris does not allow "mounting" of
> snapshots on any vnode, like we do. Solaris has them only in
> .zfs/snapshots. This allows us to have read-only mounts without even
> mounting the parent zfs.
> Before v15 we have been happy with that code and had no issues :-)
> I have a very simple testcase where just fixing the VFS_RELE breaks our
> forced unmount. Let's say we use the correct VFS_RELE in zfs_vfsops.c:
> VFS_RELE(vfsp->mnt_vnodecovered->v_vfsp);
> Now let's say you have a mounted filesystem (e.g. md) under /mnt:
> /dev/md5 on /mnt (ufs, local)
> # mkdir /mnt/test
> # mount -t zfs tank at t2 /mnt/test
> # umount -f /mnt
> Now you will hang because the second VFS_HOLD.

Hang here would be bad, I agree.
But I think that the umount shouldn't succeed either, in this case.

> So I stick to my opinion
> that this "extra protection" is more a problem than a solution in our
> case and it should be commented out.

Andriy Gapon

More information about the freebsd-stable mailing list