Reboot hangs after ZFS snapshot directory lookup. In zfsctl_snapdir_lookup(zfs_ctldir.c) line at 681, macro ZFS_ENTER called, but ZFS_EXIT missing case exists. When unmounting ZFS snapshot directory, zfs_umount(zfs_vfsops.c) line at 737 going infinite loop, because zfsvfs_t->z_op_cnt never to zero. Fix: Apply the patch. Patch attached with submission follows: How-To-Repeat: [root@srv2 ~]# zpool create tank da0s1d [root@srv2 ~]# zfs create tank/vol01 [root@srv2 ~]# zfs snapshot tank/vol01@snap01 [root@srv2 ~]# df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/da0s1a 5077038 3983846 687030 85% / devfs 1 1 0 100% /dev tank 2047872 128 2047744 0% /tank tank/vol01 2047872 128 2047744 0% /tank/vol01 [root@srv2 ~]# ls /tank/vol01/.zfs/snapshot/snap01 [root@srv2 ~]# df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/da0s1a 5077038 3983846 687030 85% / devfs 1 1 0 100% /dev tank 2047872 128 2047744 0% /tank tank/vol01 2047872 128 2047744 0% /tank/vol01 tank/vol01@snap01 2047872 128 2047744 0% /tank/vol01/.zfs/snapshot/snap01 [root@srv2 ~]# cd / [root@srv2 /]# shutdown -r now hangs...
pjd 2008-09-15 11:27:25 UTC FreeBSD src repository Modified files: sys/cddl/contrib/opensolaris/uts/common/fs/zfs zfs_ctldir.c Log: SVN rev 183037 on 2008-09-15 11:27:25Z by pjd Add missing ZFS_EXIT(). PR: kern/124899 Submitted by: Masakazu Asama <m-asama@ginzado.ne.jp> Revision Changes Path 1.11 +1 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Responsible Changed From-To: freebsd-bugs->pjd pjd committed the patch to assign to him for MFC.
Responsible Changed From-To: pjd->freebsd-fs With pjd's permission, reassing ZFS-related PRs to freebsd-fs.
State Changed From-To: patched->closed Patch available and fixed in v13.
State Changed From-To: open->patched Fix committed to HEAD, thanks!