On Sat, May 05, 2012 at 01:00:36PM +0400, Sergey Kandaurov wrote: > On 17 April 2012 20:28, Kirk McKusick <mckus...@freebsd.org> wrote: > > Author: mckusick > > Date: Tue Apr 17 16:28:22 2012 > > New Revision: 234386 > > URL: http://svn.freebsd.org/changeset/base/234386 > > > > Log: > > Replace the MNT_VNODE_FOREACH interface with MNT_VNODE_FOREACH_ALL. > > The primary changes are that the user of the interface no longer > > needs to manage the mount-mutex locking and that the vnode that > > is returned has its mutex locked (thus avoiding the need to check > > to see if its is DOOMED or other possible end of life senarios). > > > > To minimize compatibility issues for third-party developers, the > > old MNT_VNODE_FOREACH interface will remain available so that this > > change can be MFC'ed to 9. Following the MFC to 9, MNT_VNODE_FOREACH > > will be removed in head. > > > > The reason for this update is to prepare for the addition of the > > MNT_VNODE_FOREACH_ACTIVE interface that will loop over just the > > active vnodes associated with a mount point (typically less than > > 1% of the vnodes associated with the mount point). > > > > Reviewed by: kib > > Tested by: Peter Holm > > MFC after: 2 weeks > > > > Hi. > > This commit crashes on old nfsclient. Looks like this change is missed. > > Index: nfsclient/nfs_vfsops.c > =================================================================== > --- nfsclient/nfs_vfsops.c (revision 235051) > +++ nfsclient/nfs_vfsops.c (working copy) > @@ -1452,6 +1452,7 @@ > MNT_IUNLOCK(mp); > return (EBADF); > } > + MNT_IUNLOCK(mp); > > /* > * Force stale buffer cache information to be flushed. > Yes, looks so. And, for the purposes for which the check of MNTK_UNMOUNTF was added, the interlock of the struct mount is not needed there at all. I suggest that you just remove MNT_ILOCK/partial MNT_IUNLOCK and commit the change.
Thanks.
pgpeDXYXEAGQb.pgp
Description: PGP signature