summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2012-11-22 13:53:29 -0800
committerSage Weil <sage@inktank.com>2012-11-22 13:53:29 -0800
commit1c715a11f70788d987c16aa67ce2b6f32c04a673 (patch)
tree6a6ed2f88b91eb37ab1b445f8bd21b5abd5f2107
parent55081c2bea0a918946dab1805334c73b8d01cd47 (diff)
downloadceph-1c715a11f70788d987c16aa67ce2b6f32c04a673.tar.gz
mds: child directory inherits SGID bit
Update the inode, not the local variable. Reported-by: Giorgos Kappes <geokapp@gmail.com> Signed-off-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/mds/Server.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mds/Server.cc b/src/mds/Server.cc
index 4642a1346ff..b0fd9ec0c15 100644
--- a/src/mds/Server.cc
+++ b/src/mds/Server.cc
@@ -1754,7 +1754,7 @@ CInode* Server::prepare_new_inode(MDRequest *mdr, CDir *dir, inodeno_t useino, u
in->inode.gid = diri->inode.gid;
if (S_ISDIR(mode)) {
dout(10) << " new dir also sticky" << dendl;
- mode |= S_ISGID;
+ in->inode.mode |= S_ISGID;
}
} else
in->inode.gid = mdr->client_request->get_caller_gid();