]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
client: drop correct caps when setting btime
authorJeff Layton <jlayton@redhat.com>
Thu, 8 Dec 2016 19:24:04 +0000 (14:24 -0500)
committerJeff Layton <jlayton@redhat.com>
Thu, 8 Dec 2016 19:24:04 +0000 (14:24 -0500)
btime lives under auth caps, but the client drops file caps when setting
it. Change it to drop auth caps instead.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
src/client/Client.cc

index 3638863e81e2408d15995c66d5b7877cd609d47b..129b47f0f1b473a0e5f312bd3e2e9cfc60ee8d1c 100644 (file)
@@ -6586,6 +6586,10 @@ force_request:
     req->inode_drop |= CEPH_CAP_AUTH_SHARED;
     ldout(cct,10) << "changing gid to " << stx->stx_gid << dendl;
   }
+  if (mask & CEPH_SETATTR_BTIME) {
+    req->head.args.setattr.btime = utime_t(stx->stx_btime);
+    req->inode_drop |= CEPH_CAP_AUTH_SHARED;
+  }
   if (mask & CEPH_SETATTR_MTIME) {
     req->head.args.setattr.mtime = utime_t(stx->stx_mtime);
     req->inode_drop |= CEPH_CAP_AUTH_SHARED | CEPH_CAP_FILE_RD |
@@ -6596,11 +6600,6 @@ force_request:
     req->inode_drop |= CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_RD |
       CEPH_CAP_FILE_WR;
   }
-  if (mask & CEPH_SETATTR_BTIME) {
-    req->head.args.setattr.btime = utime_t(stx->stx_btime);
-    req->inode_drop |= CEPH_CAP_FILE_CACHE | CEPH_CAP_FILE_RD |
-      CEPH_CAP_FILE_WR;
-  }
   if (mask & CEPH_SETATTR_SIZE) {
     if ((unsigned long)stx->stx_size < mdsmap->get_max_filesize()) {
       req->head.args.setattr.size = stx->stx_size;