From: Sage Weil Date: Mon, 29 Mar 2010 22:52:51 +0000 (-0700) Subject: mds: delay check_inode_max_size if frozen X-Git-Tag: v0.20~151^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=65d3f3fd830dadfd542f9a0eeb59ff405eacfadd;p=ceph.git mds: delay check_inode_max_size if frozen --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 35fa35025648..d3f33762df39 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -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()) {