From: Sage Weil Date: Tue, 24 Aug 2010 23:31:19 +0000 (-0700) Subject: client: don't improperly conclude COMPLETE on empty dir X-Git-Tag: v0.22~222 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=98cf3c36cb0f040172f5a3cc0fcd3675c20f95a7;p=ceph.git client: don't improperly conclude COMPLETE on empty dir We can't trust the MDS values when we hold FILE_EXCL. --- diff --git a/src/client/Client.cc b/src/client/Client.cc index ba4f1d6a2f720..239752f80c814 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -492,6 +492,7 @@ Inode * Client::add_update_inode(InodeStat *st, utime_t from, int mds) if (in->is_dir() && (st->cap.caps & CEPH_CAP_FILE_SHARED) && + (issued & CEPH_CAP_FILE_EXCL) == 0 && in->dirstat.nfiles == 0 && in->dirstat.nsubdirs == 0) { dout(10) << " marking I_COMPLETE on empty dir " << *in << dendl;