]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: allow do_null_snapflush on multiversion inodes
authorSage Weil <sage@newdream.net>
Tue, 5 Oct 2010 19:38:43 +0000 (12:38 -0700)
committerSage Weil <sage@newdream.net>
Tue, 5 Oct 2010 19:38:43 +0000 (12:38 -0700)
The _do_snap_update() can handle a multiversion inode.  Behave when
_do_null_snapflush() encounters one.

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

index 08c307da547b52a313a3e1c5b04c9c71cae69e69..28130e61b4f901117196441fad357a2c3a92203e 100644 (file)
@@ -1806,6 +1806,8 @@ void Locker::_do_null_snapflush(CInode *head_in, client_t client, snapid_t follo
     if (p->second.count(client)) {
       dout(10) << " doing async NULL snapflush on " << p->first << " from client" << p->second << dendl;
       CInode *sin = mdcache->get_inode(head_in->ino(), p->first);
+      if (!sin && head_in->is_multiversion())
+       sin = head_in;
       assert(sin);
       _do_snap_update(sin, p->first, 0, sin->first - 1, client, NULL, NULL);
       head_in->client_need_snapflush[p->first].erase(client);