From: Sage Weil Date: Tue, 24 Feb 2009 19:55:23 +0000 (-0800) Subject: mds: only do truncation process when file size goes down X-Git-Tag: v0.7~176 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=39cd8b0ee383641a61f68f7243b8bca4885becd0;p=ceph.git mds: only do truncation process when file size goes down For file size increase, no special action is required... --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index a514bcf1f60c..58c7e7bb5721 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -4812,7 +4812,8 @@ public: // notify any clients mds->locker->issue_truncate(in); - mds->mdcache->truncate_inode(in, mdr->ls); + if (in->inode.is_truncating()) + mds->mdcache->truncate_inode(in, mdr->ls); mds->balancer->hit_inode(mdr->now, in, META_POP_IWR); @@ -4832,11 +4833,12 @@ void Server::handle_client_truncate(MDRequest *mdr) CInode *cur = rdlock_path_pin_ref(mdr, true); if (!cur) return; + dout(10) << "handle_client_truncate " << req->head.args.truncate.length << " on " << *cur << dendl; + if (mdr->ref_snapid != CEPH_NOSNAP) { reply_request(mdr, -EINVAL); return; } - // xlock inode set rdlocks = mdr->rdlocks;