svn commit: r234386 - in head/sys: fs/coda fs/ext2fs fs/msdosfs fs/nfsclient kern nfsclient sys ufs/ffs ufs/ufs

Konstantin Belousov kostikbel at gmail.com
Sat May 5 11:11:31 UTC 2012


On Sat, May 05, 2012 at 01:00:36PM +0400, Sergey Kandaurov wrote:
> On 17 April 2012 20:28, Kirk McKusick <mckusick at 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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20120505/57f0b738/attachment.pgp


More information about the svn-src-all mailing list