summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrmacklem <rmacklem@FreeBSD.org>2012-04-27 22:23:06 +0000
committerrmacklem <rmacklem@FreeBSD.org>2012-04-27 22:23:06 +0000
commit2dcf58ad40ee79478e5242004a0f0ac5ea51dfe1 (patch)
tree8a4ee7b0f44db2e47d2cacba152d30afd04a478b
parentffdff21e0e59a7a446466e1c10d8669c6a648706 (diff)
downloadFreeBSD-src-2dcf58ad40ee79478e5242004a0f0ac5ea51dfe1.zip
FreeBSD-src-2dcf58ad40ee79478e5242004a0f0ac5ea51dfe1.tar.gz
It was reported via email that some non-FreeBSD NFS servers
do not include file attributes in the reply to an NFS create RPC under certain circumstances. This resulted in a vnode of type VNON that was not usable. This patch adds an NFS getattr RPC to nfs_create() for this case, to fix the problem. It was tested by the person that reported the problem and confirmed to fix this case for their server. Tested by: Steven Haber (steven.haber at isilon.com) MFC after: 2 weeks
-rw-r--r--sys/fs/nfsclient/nfs_clvnops.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/fs/nfsclient/nfs_clvnops.c b/sys/fs/nfsclient/nfs_clvnops.c
index b8f4c2c..0687d6c 100644
--- a/sys/fs/nfsclient/nfs_clvnops.c
+++ b/sys/fs/nfsclient/nfs_clvnops.c
@@ -1546,7 +1546,10 @@ again:
(void) nfscl_loadattrcache(&dvp, &dnfsva, NULL, NULL, 0, 1);
if (!error) {
newvp = NFSTOV(np);
- if (attrflag)
+ if (attrflag == 0)
+ error = nfsrpc_getattr(newvp, cnp->cn_cred,
+ cnp->cn_thread, &nfsva, NULL);
+ if (error == 0)
error = nfscl_loadattrcache(&newvp, &nfsva, NULL, NULL,
0, 1);
}
OpenPOWER on IntegriCloud