From 0772d6270c8a42b80323ecb2e43a844e28b7708a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sat, 21 Jun 2008 10:48:30 -0700 Subject: [PATCH] mds: fix dn lease issue in base/root dir --- src/mds/Locker.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index e74b73d8d1d7..bc3ab37265b0 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -1198,9 +1198,9 @@ int Locker::issue_client_lease(CDentry *dn, int client, // if the client is holding EXCL|RDCACHE caps. int mask = 0; CInode *diri = dn->get_dir()->get_inode(); - if (!diri->is_base() && // base inode's don't get version updated, so ICONTENT is useless. - !diri->dirlock.can_lease() && - (diri->get_client_cap_pending(client) & (CEPH_CAP_EXCL|CEPH_CAP_RDCACHE)) == 0 && + if ((diri->is_base() || // base inode's don't get version updated, so ICONTENT is useless. + (!diri->dirlock.can_lease() && + (diri->get_client_cap_pending(client) & (CEPH_CAP_EXCL|CEPH_CAP_RDCACHE)) == 0)) && dn->lock.can_lease()) mask |= CEPH_LOCK_DN; -- 2.47.3