diff options
| author | Anand Avati <avati@gluster.com> | 2011-03-28 09:30:38 +0000 | 
|---|---|---|
| committer | Vijay Bellur <vijay@dev.gluster.com> | 2011-04-01 06:08:19 -0700 | 
| commit | fa6ba86900abc9b023adf4ce642aba5eb0a35500 (patch) | |
| tree | bea5864b2af2a93e72c76f29788b152b9ebc06eb /xlators/nfs | |
| parent | 9c09f44f716df2c45e25b6a9a6465592fde19ea3 (diff) | |
nfs: capture attrs of create request in cs->stbuf for later use
when attrs coming in as part of create request contain modes other
than mode, they were getting discarded previously and a setattr
was getting performed on a 0-filled iatt structure. This would
result in EPERM at the access control translator as non-root users
cannot chown a file to uid 0.
Not seen with Linux NFS client as it (very likely) relies upon
auth-unix to set the ownership of the file or sends an explicit
setattr after the create.
Signed-off-by: Anand Avati <avati@gluster.com>
Signed-off-by: Vijay Bellur <vijay@dev.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/nfs')
| -rw-r--r-- | xlators/nfs/server/src/nfs3.c | 2 | 
1 files changed, 1 insertions, 1 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index 6bf4fffb5..0f2c284ec 100644 --- a/xlators/nfs/server/src/nfs3.c +++ b/xlators/nfs/server/src/nfs3.c @@ -2512,7 +2512,7 @@ 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, NULL, +        cs->setattr_valid = nfs3_sattr3_to_setattr_valid (sattr, &cs->stbuf,                                                            &cs->mode);          cs->createmode = mode;          cs->parent = *dirfh;  | 
