| Submitter | Anand Avati |
|---|---|
| Date | 2011-03-28 14:58:30 |
| Message ID | <20110328145830.GA24536@dev.gluster.com> |
| Download | mbox | patch |
| Permalink | /patch/6620/ |
| State | Accepted |
| Headers | show |
Comments
Patch
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c index e23d4ad..0c2f88b 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;
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> --- xlators/nfs/server/src/nfs3.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)