freebsd-dev/sys/fs/nullfs
Rick Macklem 2d0c83b139 Add a null_remove() function to nullfs, so that the v_usecount
of the lower level vnode is incremented to greater than 1 when
the upper level vnode's v_usecount is greater than one. This
is necessary for the NFS clients, so that they will do a silly
rename of the file instead of actually removing it when the
file is still in use. It is "racy", since the v_usecount is
incremented in many places in the kernel with
minimal synchronization, but an extraneous silly rename is
preferred to not doing a silly rename when it is required.
The only other file systems that currently check the value
of v_usecount in their VOP_REMOVE() functions are nwfs and
smbfs. These file systems choose to fail a remove when the
v_usecount is greater than 1 and I believe will function
more correctly with this patch, as well.

Tested by:	to.my.trociny at gmail.com
Submitted by:	to.my.trociny at gmail.com (earlier version)
Reviewed by:	kib
MFC after:	2 weeks
2010-08-31 01:16:45 +00:00
..
null_subr.c Do not drop vnode interlock in null_checkvp(). null_lock() verifies that 2009-05-31 14:54:20 +00:00
null_vfsops.c Remove the thread argument from the FSD (File-System Dependent) parts of 2009-05-11 15:33:26 +00:00
null_vnops.c Add a null_remove() function to nullfs, so that the v_usecount 2010-08-31 01:16:45 +00:00
null.h - Assume that all lower filesystems now support proper locking. Assert 2005-03-15 13:49:33 +00:00