/[base]
ViewVC logotype

Revision 299900


Jump to revision: Previous Next
Author: avg
Date: Mon May 16 06:24:04 2016 UTC (8 years, 1 month ago)
Changed paths: 3
Log Message:
zfsctl: fix several problems with reference counts

* Remove excessive references on a snapshot mountpoint vnode.
  zfsctl_snapdir_lookup() called VN_HOLD() on a vnode returned from
  zfsctl_snapshot_mknode() and the latter also had a call to VN_HOLD()
  on the same vnode.
  On top of that gfs_dir_create() already returns the vnode with the
  use count of 1 (set in getnewvnode).
  So there was 3 references on the vnode.

* mount_snapshot() should keep a reference to a covered vnode.
  That reference is owned by the mountpoint (mounted snapshot filesystem).

* Remove cryptic manipulations of a covered vnode in zfs_umount().
  FreeBSD dounmount() already does the right thing and releases the covered
  vnode.

PR:		207464
Reported by:	dustinwenz@ebureau.com
Tested by:	Howard Powell <hpowell@lighthouseinstruments.com>
MFC after:	3 weeks


Changed paths

Path Details
Directoryhead/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c modified , text changed
Directoryhead/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c modified , text changed
Directoryhead/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27