]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #40252 from singuliere/wip-49852-pacific
authorYuri Weinstein <yweinste@redhat.com>
Fri, 26 Mar 2021 15:32:25 +0000 (08:32 -0700)
committerGitHub <noreply@github.com>
Fri, 26 Mar 2021 15:32:25 +0000 (08:32 -0700)
pacific: mds: fix race of fetching large dirfrag

Reviewed-by: Patrick Donnelly <pdonnell@redhat.com>
1  2 
src/mds/CDir.cc

diff --cc src/mds/CDir.cc
index ad8193de00a1ea59cfc25bd8c7c5d8c4d70885c5,0b0125da34b35c173a15f3cb27d575d370a136e7..0242cdc67cab99a22eb57380ffc648b04b9c9088
@@@ -1645,10 -1653,12 +1653,12 @@@ public
    int ret1, ret2, ret3;
  
    C_IO_Dir_OMAP_Fetched(CDir *d, MDSContext *f) :
-     CDirIOContext(d), fin(f), ret1(0), ret2(0), ret3(0) { }
+     CDirIOContext(d), fin(f),
+     omap_version(d->get_committing_version()),
+     ret1(0), ret2(0), ret3(0) { }
    void finish(int r) override {
      // check the correctness of backtrace
 -    if (r >= 0 && ret3 != -ECANCELED)
 +    if (r >= 0 && ret3 != -CEPHFS_ECANCELED)
        dir->inode->verify_diri_backtrace(btbl, ret3);
      if (r >= 0) r = ret1;
      if (r >= 0) r = ret2;