]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: set alternate_name for new fullbit dentries
authorPatrick Donnelly <pdonnell@ibm.com>
Tue, 11 Mar 2025 19:01:46 +0000 (15:01 -0400)
committerPatrick Donnelly <pdonnell@ibm.com>
Mon, 17 Mar 2025 19:43:24 +0000 (15:43 -0400)
Fixes: 9fbf37ade38bc1d057eda2459b0ccfd2ab40626a
Fixes: https://tracker.ceph.com/issues/70409
Signed-off-by: Patrick Donnelly <pdonnell@ibm.com>
(cherry picked from commit 5fc94be121f8f99d0d46a2e7b41a05a9956e2fce)

Conflicts:
src/mds/journal.cc: code movement caused by referent inode changeset

src/mds/journal.cc

index 40400ff4054cadba2df7cc1dd7c8984b1849ea20..40ee2599d42c9dd7d77dea6434ccdc6975114398 100644 (file)
@@ -1318,6 +1318,7 @@ void EMetaBlob::replay(MDSRank *mds, LogSegment *logseg, int type, MDPeerUpdate
        dn->set_version(fb.dnv);
        if (fb.is_dirty()) dn->_mark_dirty(logseg);
        dout(10) << "EMetaBlob.replay added (full) " << *dn << dendl;
+        dn->set_alternate_name(mempool::mds_co::string(fb.alternate_name));
       } else {
        dn->set_version(fb.dnv);
        if (fb.is_dirty()) dn->_mark_dirty(logseg);
@@ -1325,6 +1326,7 @@ void EMetaBlob::replay(MDSRank *mds, LogSegment *logseg, int type, MDPeerUpdate
        dn->first = fb.dnfirst;
        ceph_assert(dn->last == fb.dnlast);
       }
+      ceph_assert(dn->get_alternate_name() == fb.alternate_name);
       if (lump.is_importing())
        dn->mark_auth();
 
@@ -1433,6 +1435,7 @@ void EMetaBlob::replay(MDSRank *mds, LogSegment *logseg, int type, MDPeerUpdate
        dn->first = rb.dnfirst;
        ceph_assert(dn->last == rb.dnlast);
       }
+      ceph_assert(dn->get_alternate_name() == rb.alternate_name);
       if (lump.is_importing())
        dn->mark_auth();