From: Yan, Zheng Date: Sat, 29 Jun 2013 23:44:04 +0000 (+0800) Subject: mds: fix O_TRUNC locking X-Git-Tag: v0.67-rc1~160 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4fb782c38cb97bc8a61fce629fb9eef4fdac9292;p=ceph.git mds: fix O_TRUNC locking When truncating a file, we should xlock the corresponding filelock. (revoke any Fw caps from clients). [note from sw: setattr on size also takes the filelock xlock.] Signed-off-by: Yan, Zheng Reviewed-by: Sage Weil --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 627ecd0cdb7..38dad1948a4 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2437,7 +2437,7 @@ void Server::handle_client_open(MDRequest *mdr) mdr->session->have_completed_request(req->get_reqid().tid, NULL))) { assert(cur->is_auth()); - wrlocks.insert(&cur->filelock); + xlocks.insert(&cur->filelock); if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks)) return;