]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: issue CAP_PIN always
authorSage Weil <sage@newdream.net>
Tue, 15 Apr 2008 19:47:31 +0000 (12:47 -0700)
committerSage Weil <sage@newdream.net>
Tue, 15 Apr 2008 19:47:31 +0000 (12:47 -0700)
src/mds/FileLock.h

index e3f9da5fbd129bd77e342e73625afe460fa48822..4c7d7ced24274d9d11c0e1352768f40978590097 100644 (file)
@@ -183,52 +183,52 @@ class FileLock : public SimpleLock {
   // client caps allowed
   int caps_allowed_ever() {
     if (parent->is_auth())
-      return CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_WRBUFFER | CEPH_CAP_LAZYIO;
+      return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_WRBUFFER | CEPH_CAP_LAZYIO;
     else
-      return CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+      return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
   }
   int caps_allowed() {
     if (parent->is_auth())
       switch (state) {
       case LOCK_SYNC:
-        return CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       case LOCK_LOCK:
       case LOCK_GLOCKR:
       case LOCK_GLOCKL:
-        return CEPH_CAP_RDCACHE;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE;
 
       case LOCK_GLOCKM:
-        return 0;
+        return CEPH_CAP_PIN;
 
       case LOCK_MIXED:
-        return CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_LAZYIO;
       case LOCK_GMIXEDR:
-        return CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       case LOCK_GMIXEDL:
-        return 0;
+        return CEPH_CAP_PIN;
 
       case LOCK_LONER:  // single client writer, of course.
-        return CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_WRBUFFER | CEPH_CAP_LAZYIO | CEPH_CAP_EXCL;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_WRBUFFER | CEPH_CAP_LAZYIO | CEPH_CAP_EXCL;
       case LOCK_GLONERR:
-        return CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       case LOCK_GLONERM:
-        return CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_WR | CEPH_CAP_WREXTEND | CEPH_CAP_LAZYIO;
 
       case LOCK_GSYNCL:
-        return CEPH_CAP_RDCACHE | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_LAZYIO;
       case LOCK_GSYNCM:
-        return CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       }
     else
       switch (state) {
       case LOCK_SYNC:
-        return CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       case LOCK_LOCK:
       case LOCK_GLOCKR:
-        return CEPH_CAP_RDCACHE;
+        return CEPH_CAP_PIN | CEPH_CAP_RDCACHE;
       case LOCK_GMIXEDR:
       case LOCK_MIXED:
-        return CEPH_CAP_RD | CEPH_CAP_LAZYIO;
+        return CEPH_CAP_PIN | CEPH_CAP_RD | CEPH_CAP_LAZYIO;
       }
     assert(0);
     return 0;