svn commit: r206061 - head/sys/fs/nfsserver

[ Available lists | Index of svn-src-head | Month of Apr 2010 | Week of 2 Apr 2010 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Rick Macklem <rmacklem@FreeBSD.org>
Date
2 Apr 2010 01:53:49
Subject
svn commit: r206061 - head/sys/fs/nfsserver
Message-ID
201004020153.o321rmxG012359@svn.freebsd.org


[ Hide this part ]
Author: rmacklem
Date: Fri Apr 2 01:53:48 2010
New Revision: 206061
URL: http://svn.freebsd.org/changeset/base/206061

Log:
Add SAVENAME to the cn_flags for all cases in the experimental
NFS server for the CREATE cn_nameiop where SAVESTART isn't set.
I was not aware that this needed to be done by the caller until
recently.

Tested by: lampa AT fit.vutbr.cz (link case)
Submitted by: lampa AT fit.vutbr.cz (link case)
MFC after: 2 weeks

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

Modified: head/sys/fs/nfsserver/nfs_nfsdserv.c
==============================================================================
--- head/sys/fs/nfsserver/nfs_nfsdserv.c Thu Apr 1 23:35:35 2010 (r206060)
+++ head/sys/fs/nfsserver/nfs_nfsdserv.c Fri Apr 2 01:53:48 2010 (r206061)
@@ -1086,7 +1086,7 @@ nfsrvd_mknod(struct nfsrv_descript *nd,
case NFFIFO:
break;
case NFDIR:
- cnflags = LOCKPARENT;
+ cnflags = (LOCKPARENT | SAVENAME);
break;
default:
nd->nd_repstat = NFSERR_BADTYPE;
@@ -1549,7 +1549,8 @@ nfsrvd_link(struct nfsrv_descript *nd, i
NFSVOPUNLOCK(dp, 0, p);
}
}
- NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, LOCKPARENT);
+ NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE,
+ LOCKPARENT | SAVENAME);
if (!nd->nd_repstat) {
nfsvno_setpathbuf(&named, &bufp, &hashp);
error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen);
@@ -1743,7 +1744,8 @@ nfsrvd_mkdir(struct nfsrv_descript *nd,
nfsrv_wcc(nd, dirfor_ret, &dirfor, diraft_ret, &diraft);
return (0);
}
- NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE, LOCKPARENT);
+ NFSNAMEICNDSET(&named.ni_cnd, nd->nd_cred, CREATE,
+ LOCKPARENT | SAVENAME);
nfsvno_setpathbuf(&named, &bufp, &hashp);
error = nfsrv_parsename(nd, bufp, hashp, &named.ni_pathlen);
if (error) {


Elapsed time: 0.128 seconds