diff options
| author | Gaurav <gaurav@gluster.com> | 2011-06-08 07:28:47 +0000 | 
|---|---|---|
| committer | Anand Avati <avati@gluster.com> | 2011-06-08 11:18:06 -0700 | 
| commit | 5db81abe33cc76387b5f1034ede1f13e66b84e06 (patch) | |
| tree | 83fc2e3ead6f958d2979e490b25bcc991a0b18bd /xlators | |
| parent | ba1bc2e5823da75f9bbe4742545a427aeb0fd8f3 (diff) | |
NFS : Don't set setattr_valid for exclusive create call.
Signed-off-by: Gaurav <gaurav@gluster.com>
Signed-off-by: Anand Avati <avati@gluster.com>
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
Diffstat (limited to 'xlators')
| -rw-r--r-- | xlators/nfs/server/src/nfs3.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index 2fc295ef3e9..cd0a543f6cf 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;  | 
