freebsd-skq/sys/fs/nullfs
Konstantin Belousov 0fc6daa72d - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The
null_hashget() obtains the reference on the nullfs vnode, which must
  be dropped.

- Fix a wart which existed from the introduction of the nullfs
  caching, do not unlock lower vnode in the nullfs_reclaim_lowervp().
  It should be innocent, but now it is also formally safe.  Inform the
  nullfs_reclaim() about this using the NULLV_NOUNLOCK flag set on
  nullfs inode.

- Add a callback to the upper filesystems for the lower vnode
  unlinking. When inactivating a nullfs vnode, check if the lower
  vnode was unlinked, indicated by nullfs flag NULLV_DROP or VV_NOSYNC
  on the lower vnode, and reclaim upper vnode if so.  This allows
  nullfs to purge cached vnodes for the unlinked lower vnode, avoiding
  excessive caching.

Reported by:	G??ran L??wkrantz <goran.lowkrantz@ismobile.com>
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2013-05-11 11:17:44 +00:00
..
null_subr.c - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The 2013-05-11 11:17:44 +00:00
null_vfsops.c - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The 2013-05-11 11:17:44 +00:00
null_vnops.c - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The 2013-05-11 11:17:44 +00:00
null.h - Fix nullfs vnode reference leak in nullfs_reclaim_lowervp(). The 2013-05-11 11:17:44 +00:00