]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: delay check_inode_max_size if frozen
authorSage Weil <sage@newdream.net>
Mon, 29 Mar 2010 22:52:51 +0000 (15:52 -0700)
committerSage Weil <sage@newdream.net>
Mon, 29 Mar 2010 22:52:51 +0000 (15:52 -0700)
src/mds/Locker.cc

index 35fa35025648b283f3fc3be8d76e716b5ed551d9..d3f33762df39e7102c3e20f6325e9fe281bc6934 100644 (file)
@@ -1501,6 +1501,11 @@ bool Locker::check_inode_max_size(CInode *in, bool force_wrlock,
           << " update_size " << update_size
           << " on " << *in << dendl;
 
+  if (in->is_frozen()) {
+    dout(10) << "check_inode_max_size frozen, waiting on " << *in << dendl;
+    in->add_waiter(CInode::WAIT_UNFREEZE, new C_MDL_CheckMaxSize(this, in));
+    return false;
+  }
   if (!force_wrlock && !in->filelock.can_wrlock(in->get_loner())) {
     // lock?
     if (in->filelock.is_stable()) {