]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mds: remove quiescelock handling for SimpleLock type
authorPatrick Donnelly <pdonnell@redhat.com>
Tue, 5 Mar 2024 19:13:42 +0000 (14:13 -0500)
committerPatrick Donnelly <pdonnell@redhat.com>
Fri, 22 Mar 2024 15:38:03 +0000 (11:38 -0400)
This is no longer necessary with the conversion to LocalLock.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit 7e75a9e96343b2acf8a2c77b71563dadbdefd37b)

src/mds/CInode.cc
src/mds/Migrator.cc

index 7b5bfc6133cbdb8e796f5d6c4d9c320f58f67414..d66c9d27a7d9bcf7eb4607a229a62f208fe4a132 100644 (file)
@@ -2210,13 +2210,6 @@ void CInode::encode_lock_state(int type, bufferlist& bl)
   case CEPH_LOCK_IPOLICY:
     encode_lock_ipolicy(bl);
     break;
-
-  case CEPH_LOCK_IQUIESCE: {
-    ENCODE_START(1, 1, bl);
-    /* skeleton */
-    ENCODE_FINISH(bl);
-    break;
-  }
   
   default:
     ceph_abort();
@@ -2284,13 +2277,6 @@ void CInode::decode_lock_state(int type, const bufferlist& bl)
     decode_lock_ipolicy(p);
     break;
 
-  case CEPH_LOCK_IQUIESCE: {
-    DECODE_START(1, p);
-    /* skeleton */
-    DECODE_FINISH(p);
-    break;
-  }
-
   default:
     ceph_abort();
   }
@@ -2879,10 +2865,19 @@ bool CInode::freeze_inode(int auth_pin_allowance)
   if (!dir->lock_caches_with_auth_pins.empty())
     mdcache->mds->locker->invalidate_lock_caches(dir);
 
-  const static int lock_types[] = {
-    CEPH_LOCK_IVERSION, CEPH_LOCK_IFILE, CEPH_LOCK_IAUTH, CEPH_LOCK_ILINK, CEPH_LOCK_IDFT,
-    CEPH_LOCK_IXATTR, CEPH_LOCK_ISNAP, CEPH_LOCK_INEST, CEPH_LOCK_IFLOCK, CEPH_LOCK_IPOLICY, 0
-    //TODO: add iquiesce here?
+  static const int lock_types[] = {
+    CEPH_LOCK_IQUIESCE,
+    CEPH_LOCK_IVERSION,
+    CEPH_LOCK_IFILE,
+    CEPH_LOCK_IAUTH,
+    CEPH_LOCK_ILINK,
+    CEPH_LOCK_IDFT,
+    CEPH_LOCK_IXATTR,
+    CEPH_LOCK_ISNAP,
+    CEPH_LOCK_INEST,
+    CEPH_LOCK_IFLOCK,
+    CEPH_LOCK_IPOLICY,
+    0
   };
   for (int i = 0; lock_types[i]; ++i) {
     auto lock = get_lock(lock_types[i]);
@@ -4308,7 +4303,6 @@ void CInode::_encode_locks_full(bufferlist& bl)
   encode(flocklock, bl);
   encode(policylock, bl);
   encode(loner_cap, bl);
-  encode(quiescelock, bl);
 }
 void CInode::_decode_locks_full(bufferlist::const_iterator& p)
 {
@@ -4325,12 +4319,11 @@ void CInode::_decode_locks_full(bufferlist::const_iterator& p)
   decode(loner_cap, p);
   set_loner_cap(loner_cap);
   want_loner_cap = loner_cap;  // for now, we'll eval() shortly.
-  decode(quiescelock, p);
 }
 
 void CInode::_encode_locks_state_for_replica(bufferlist& bl, bool need_recover)
 {
-  ENCODE_START(2, 1, bl);
+  ENCODE_START(1, 1, bl);
   authlock.encode_state_for_replica(bl);
   linklock.encode_state_for_replica(bl);
   dirfragtreelock.encode_state_for_replica(bl);
@@ -4341,7 +4334,6 @@ void CInode::_encode_locks_state_for_replica(bufferlist& bl, bool need_recover)
   flocklock.encode_state_for_replica(bl);
   policylock.encode_state_for_replica(bl);
   encode(need_recover, bl);
-  quiescelock.encode_state_for_replica(bl);
   ENCODE_FINISH(bl);
 }
 
@@ -4357,12 +4349,11 @@ void CInode::_encode_locks_state_for_rejoin(bufferlist& bl, int rep)
   snaplock.encode_state_for_replica(bl);
   flocklock.encode_state_for_replica(bl);
   policylock.encode_state_for_replica(bl);
-  quiescelock.encode_state_for_replica(bl);
 }
 
 void CInode::_decode_locks_state_for_replica(bufferlist::const_iterator& p, bool is_new)
 {
-  DECODE_START(2, p);
+  DECODE_START(1, p);
   authlock.decode_state(p, is_new);
   linklock.decode_state(p, is_new);
   dirfragtreelock.decode_state(p, is_new);
@@ -4376,10 +4367,6 @@ void CInode::_decode_locks_state_for_replica(bufferlist::const_iterator& p, bool
   bool need_recover;
   decode(need_recover, p);
 
-  if (struct_v >= 2) {
-    quiescelock.decode_state(p, is_new);
-  }
-
   if (need_recover && is_new) {
     // Auth mds replicated this inode while it's recovering. Auth mds may take xlock on the lock
     // and change the object when replaying unsafe requests.
@@ -4407,7 +4394,6 @@ void CInode::_decode_locks_rejoin(bufferlist::const_iterator& p, MDSContext::vec
   snaplock.decode_state_rejoin(p, waiters, survivor);
   flocklock.decode_state_rejoin(p, waiters, survivor);
   policylock.decode_state_rejoin(p, waiters, survivor);
-  quiescelock.decode_state_rejoin(p, waiters, survivor);
 
   if (!dirfragtreelock.is_stable() && !dirfragtreelock.is_wrlocked())
     eval_locks.push_back(&dirfragtreelock);
@@ -4422,7 +4408,7 @@ void CInode::_decode_locks_rejoin(bufferlist::const_iterator& p, MDSContext::vec
 
 void CInode::encode_export(bufferlist& bl)
 {
-  ENCODE_START(6, 6, bl);
+  ENCODE_START(5, 4, bl);
   _encode_base(bl, mdcache->mds->mdsmap->get_up_features());
 
   encode(state, bl);
@@ -4473,7 +4459,7 @@ void CInode::finish_export()
 void CInode::decode_import(bufferlist::const_iterator& p,
                           LogSegment *ls)
 {
-  DECODE_START(6, p);
+  DECODE_START(5, p);
 
   _decode_base(p);
 
index 8478bbb7fc78e7af4dcca9f21058881042f17867..d6b554c77681cb694b134f9734411eccadd33a9f 100644 (file)
@@ -1698,7 +1698,6 @@ void Migrator::finish_export_inode(CInode *in, mds_rank_t peer,
   in->snaplock.export_twiddle();
   in->flocklock.export_twiddle();
   in->policylock.export_twiddle();
-  in->quiescelock.export_twiddle();
   
   // mark auth
   ceph_assert(in->is_auth());
@@ -3246,10 +3245,6 @@ void Migrator::decode_import_inode(CDentry *dn, bufferlist::const_iterator& blp,
   if (in->policylock.is_stable() &&
       in->policylock.get_state() != LOCK_SYNC)
       mds->locker->try_eval(&in->policylock, NULL);
-
-  if (in->quiescelock.is_stable() &&
-      in->quiescelock.get_state() != LOCK_SYNC)
-      mds->locker->try_eval(&in->quiescelock, NULL);
 }
 
 void Migrator::decode_import_inode_caps(CInode *in, bool auth_cap,