Author: rmacklem
Date: Fri Apr 27 20:23:24 2012
New Revision: 234740
URL: http://svn.freebsd.org/changeset/base/234740

Log:
  Fix a leak of namei lookup path buffers that occurs when a
  ZFS volume is exported via the new NFS server. The leak occurred
  because the new NFS server code didn't handle the case where
  a file system sets the SAVENAME flag in its VOP_LOOKUP() and
  ZFS does this for the DELETE case.
  
  Tested by:    Oliver Brandmueller (ob at gruft.de), hrs
  PR:           kern/167266
  MFC after:    1 month

Modified:
  head/sys/fs/nfsserver/nfs_nfsdport.c

Modified: head/sys/fs/nfsserver/nfs_nfsdport.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Apr 27 20:16:20 2012        
(r234739)
+++ head/sys/fs/nfsserver/nfs_nfsdport.c        Fri Apr 27 20:23:24 2012        
(r234740)
@@ -1047,6 +1047,8 @@ nfsvno_removesub(struct nameidata *ndp, 
        else
                vput(ndp->ni_dvp);
        vput(vp);
+       if ((ndp->ni_cnd.cn_flags & SAVENAME) != 0)
+               nfsvno_relpathbuf(ndp);
        NFSEXITCODE(error);
        return (error);
 }
@@ -1086,6 +1088,8 @@ out:
        else
                vput(ndp->ni_dvp);
        vput(vp);
+       if ((ndp->ni_cnd.cn_flags & SAVENAME) != 0)
+               nfsvno_relpathbuf(ndp);
        NFSEXITCODE(error);
        return (error);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to