summaryrefslogtreecommitdiffstats
path: root/xlators/nfs
diff options
context:
space:
mode:
authorAnand Avati <avati@gluster.com>2011-03-28 09:28:30 +0000
committerVijay Bellur <vijay@dev.gluster.com>2011-03-29 05:33:02 -0700
commit53c140b69c19a692c3205b32ae26764cd05b935f (patch)
treeb531b4d17fc5af67279ce451834c1117111ae19c /xlators/nfs
parent3349098aca46a505c23a9bceeda53774b6820faf (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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xlators/nfs/server/src/nfs3.c b/xlators/nfs/server/src/nfs3.c
index e23d4ad75f0..0c2f88b5f15 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;