]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: pin NEEDSNAPFLUSH only when adding item
authorSage Weil <sage@newdream.net>
Thu, 28 Oct 2010 18:02:26 +0000 (11:02 -0700)
committerSage Weil <sage@newdream.net>
Thu, 28 Oct 2010 18:02:26 +0000 (11:02 -0700)
This is mainly paranoia.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/MDCache.cc

index e9d8036452918ae9b5f8f86ee4af62018d58aff4..2aa2fecb769a36aa69aa880b167a94306d0ac556 100644 (file)
@@ -1300,8 +1300,6 @@ CInode *MDCache::cow_inode(CInode *in, snapid_t last)
        }
       }
       cap->client_follows = last;
-      if (in->client_need_snapflush.empty())
-       in->get(CInode::PIN_NEEDSNAPFLUSH);
       
       // we need snapflushes for any intervening snaps
       dout(10) << "  snaps " << snaps << dendl;
@@ -1309,6 +1307,8 @@ CInode *MDCache::cow_inode(CInode *in, snapid_t last)
           q != snaps.end() && *q <= last;
           q++) {
        dout(10) << "   need_snapflush on " << *q << dendl;
+       if (in->client_need_snapflush.empty())
+         in->get(CInode::PIN_NEEDSNAPFLUSH);
        in->client_need_snapflush[*q].insert(client);
       }
     } else {