]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
preserve file type in mode during chmod
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Thu, 26 Jul 2007 17:31:42 +0000 (17:31 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Thu, 26 Jul 2007 17:31:42 +0000 (17:31 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1557 29311d96-e01e-0410-9327-a35deaab8ce9

trunk/ceph/mds/Server.cc

index b5b36890db7c5ed190fe0c4a7d2ffef722ad1935..6ffae5060349012e71fedc60a97e94ae9aabcf6f 100644 (file)
@@ -1389,7 +1389,9 @@ void Server::handle_client_chmod(MDRequest *mdr)
 
   // project update
   inode_t *pi = cur->project_inode();
-  pi->mode = req->args.chmod.mode & 04777;
+  pi->mode = 
+    (pi->mode & ~04777) | 
+    (req->args.chmod.mode & 04777);
   pi->version = cur->pre_dirty();
   pi->ctime = g_clock.real_now();