NetBSD/sys/miscfs
sommerfe 36dc99adac vinvalbuf, called from vclean, could cause a locking-against-self
deadlock in VOP_FSYNC() if the unreferenced vnode picked for
reclamation happened to be stacked on top of a vnode the process
already had locked.  This could happen if the same filesystem was
accessed both through a union mount and directly; it seemed to happen
most frequently when the direct access was through NFS.

Avoid this deadlock by changing vinvalbuf to pass a new FSYNC_RECLAIM
flag bit to VOP_FSYNC() to indicate that a reclaim is in progress and
only a `shallow' fsync is necessary.

Do nothing in *_fsync() in umapfs, nullfs, and unionfs when
FSYNC_RECLAIM is set; the underlying vnodes will shortly be released
in *_reclaim and may be reclaimed (and fsync'ed) later.
1999-03-22 17:24:19 +00:00
..
deadfs
fdesc Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now 1999-02-26 23:44:43 +00:00
fifofs Use the so_send and so_receive funcptrs in the socket instead of calling 1998-10-31 01:18:41 +00:00
genfs Pass null pointers to VOP_UPDATE rather than having all the callers fetch the 1999-03-05 21:09:48 +00:00
kernfs Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now 1999-02-26 23:44:43 +00:00
nullfs vinvalbuf, called from vclean, could cause a locking-against-self 1999-03-22 17:24:19 +00:00
portal Modify vfsops to seperate vfs_fhtovp() into two routines. vfs_fhtovp() now 1999-02-26 23:44:43 +00:00
procfs malloc the arg temporary buffer, rather than declaring it as an automatic 1999-03-13 22:26:48 +00:00
specfs
umapfs vinvalbuf, called from vclean, could cause a locking-against-self 1999-03-22 17:24:19 +00:00
union vinvalbuf, called from vclean, could cause a locking-against-self 1999-03-22 17:24:19 +00:00
Makefile