]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix FileLock can_wrlock
authorSage Weil <sage@newdream.net>
Thu, 5 Jun 2008 23:19:23 +0000 (16:19 -0700)
committerSage Weil <sage@newdream.net>
Thu, 5 Jun 2008 23:19:23 +0000 (16:19 -0700)
src/mds/FileLock.h

index 5454f5cddc1864ab108d8e9ebffe374945950821..82c29d294f833c4107099066f1bf4c897996b7b3 100644 (file)
@@ -164,10 +164,11 @@ class FileLock : public SimpleLock {
   // wrlock
   bool can_wrlock() {
     return 
-      state == LOCK_LOCK || state == LOCK_GLOCKM || state == LOCK_GLOCKL ||
-      state == LOCK_MIXED || state == LOCK_GMIXEDL ||
-      state == LOCK_LONER || state == LOCK_GLONERM ||
-      state == LOCK_GSYNCM || state == LOCK_GSYNCL;
+      parent->is_auth() && 
+      (state == LOCK_LOCK || state == LOCK_GLOCKM || state == LOCK_GLOCKL ||
+       state == LOCK_MIXED || state == LOCK_GMIXEDL ||
+       state == LOCK_LONER || state == LOCK_GLONERM ||
+       state == LOCK_GSYNCM || state == LOCK_GSYNCL);
   }
   void get_wrlock(bool force) {
     assert(force || can_wrlock());