From aa9a6bc1bfd87aa70018dc6acc90fb94cba811c6 Mon Sep 17 00:00:00 2001 From: Gaurav Date: Wed, 8 Jun 2011 05:59:03 +0000 Subject: NFS : Don't set setattr_valid for exclusive create call. Signed-off-by: Gaurav Signed-off-by: Anand Avati BUG: 2553 (NFS file create with Mac client and UNCHECKED mode returns "Operation not permitted") URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2553 --- xlators/nfs/server/src/nfs3.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'xlators/nfs/server/src/nfs3.c') diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index 2fc295ef3..cd0a543f6 100644 --- a/xlators/nfs/server/src/nfs3.c +++ b/xlators/nfs/server/src/nfs3.c @@ -2461,7 +2461,7 @@ nfs3_create_exclusive (nfs3_call_state_t *cs) ret = nfs_create (cs->nfsx, cs->vol, &nfu, &cs->resolvedloc, O_RDWR, cs->mode, nfs3svc_create_cbk, cs); } else - ret = nfs_create (cs->nfsx, cs->vol, &nfu, &cs->oploc, O_RDWR, + ret = nfs_create (cs->nfsx, cs->vol, &nfu, &cs->resolvedloc, O_RDWR, NFS_DEFAULT_CREATE_MODE, nfs3svc_create_cbk, cs); @@ -2525,7 +2525,10 @@ nfs3_create (rpcsvc_request_t *req, struct nfs3_fh *dirfh, char *name, nfs3_handle_call_state_init (nfs3, cs, req, vol, stat, nfs3err); cs->cookieverf = cverf; - cs->setattr_valid = nfs3_sattr3_to_setattr_valid (sattr, &cs->stbuf, + /*In Exclusive create client is supposed to send cverf instead of + * sattr*/ + if (mode != EXCLUSIVE) + cs->setattr_valid = nfs3_sattr3_to_setattr_valid (sattr, &cs->stbuf, &cs->mode); cs->createmode = mode; cs->parent = *dirfh; -- cgit