summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-04-03 21:03:32 -0700
committerSage Weil <sage@newdream.net>2009-04-03 21:03:32 -0700
commitff2c0c58640bf9bbc21a2289ea1fade410844a61 (patch)
treeb86d7f370b71ff9d0161e49777fef0851e56f967
parent86b79afecc888b9b40637d436a89b9b76305016b (diff)
downloadceph-ff2c0c58640bf9bbc21a2289ea1fade410844a61.tar.gz
mds: do not want LINK caps for any open file; no non-FILE caps when readonly
When readonly, we don't want anything other than FILE caps. (The mds will of course give us more when it can.) For WR and RDWR, we still want AUTH and XATTR caps, for now, since there is some possibility that the client will want to change them.
-rw-r--r--src/include/ceph_fs.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/include/ceph_fs.h b/src/include/ceph_fs.h
index 5fec69e88f5..b41826e090f 100644
--- a/src/include/ceph_fs.h
+++ b/src/include/ceph_fs.h
@@ -986,25 +986,20 @@ static inline int ceph_caps_for_mode(int mode)
return CEPH_CAP_PIN;
case CEPH_FILE_MODE_RD:
return CEPH_CAP_PIN |
- CEPH_CAP_FILE_RDCACHE | CEPH_CAP_FILE_RD |
- CEPH_CAP_AUTH_RDCACHE |
- CEPH_CAP_XATTR_RDCACHE |
- CEPH_CAP_LINK_RDCACHE;
+ CEPH_CAP_FILE_RDCACHE | CEPH_CAP_FILE_RD;
case CEPH_FILE_MODE_RDWR:
return CEPH_CAP_PIN |
((CEPH_CAP_GRD | CEPH_CAP_GRDCACHE |
CEPH_CAP_GWR | CEPH_CAP_GWRBUFFER |
CEPH_CAP_GEXCL) << CEPH_CAP_SFILE) |
((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SAUTH) |
- ((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SXATTR) |
- ((CEPH_CAP_GRDCACHE) << CEPH_CAP_SLINK);
+ ((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SXATTR);
case CEPH_FILE_MODE_WR:
return CEPH_CAP_PIN |
((CEPH_CAP_GWR | CEPH_CAP_GWRBUFFER |
CEPH_CAP_GEXCL) << CEPH_CAP_SFILE) |
((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SAUTH) |
- ((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SXATTR) |
- ((CEPH_CAP_GRDCACHE) << CEPH_CAP_SLINK);
+ ((CEPH_CAP_GRDCACHE | CEPH_CAP_GEXCL) << CEPH_CAP_SXATTR);
}
return 0;
}