From 39cd8b0ee383641a61f68f7243b8bca4885becd0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 24 Feb 2009 11:55:23 -0800 Subject: [PATCH] mds: only do truncation process when file size goes down For file size increase, no special action is required... --- src/mds/Server.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/mds/Server.cc b/src/mds/Server.cc index a514bcf1f60cb..58c7e7bb5721b 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; -- 2.39.5