]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix lease issue mask
authorSage Weil <sage@newdream.net>
Fri, 23 Jul 2010 22:14:43 +0000 (15:14 -0700)
committerSage Weil <sage@newdream.net>
Fri, 23 Jul 2010 22:50:34 +0000 (15:50 -0700)
We define 1 to be the only lease "mask" we currently support (for dentry)
and divorce ourselves from the CEPH_LOCK namespace for this purpose.  We
did this in c8d7c970e864e9f130b7c44b29c322771067026e, but screwed up the
issue function.  Fix the caller, and pay attention to @mask here.

Signed-off-by: Sage Weil <sage@newdream.net>
src/mds/Locker.cc

index da589af1ff606fc24fc2320a060ba05a0c1ac838..8c7787fd459c93563d109fbc5860d6e2b90bb661 100644 (file)
@@ -2228,7 +2228,7 @@ void Locker::_issue_client_lease(CDentry *dn, int mask, int pool, client_t clien
                                 bufferlist &bl, utime_t now, Session *session)
 {
   LeaseStat e;
-  e.mask = 1;
+  e.mask = mask;
 
   if (mask) {
     ClientLease *l = dn->add_client_lease(client, mask, session);
@@ -2243,7 +2243,8 @@ void Locker::_issue_client_lease(CDentry *dn, int mask, int pool, client_t clien
 
   e.duration_ms = (int)(1000 * mdcache->client_lease_durations[pool]);
   ::encode(e, bl);
-  dout(20) << "_issue_client_lease mask " << e.mask << " dur " << e.duration_ms << "ms" << dendl;
+  dout(20) << "_issue_client_lease mask " << e.mask << " seq " << e.seq << " dur " << e.duration_ms << "ms "
+          << " on " << *dn << dendl;
 }
   
 
@@ -2279,7 +2280,7 @@ int Locker::issue_client_lease(CDentry *dn, client_t client,
       ((!diri->filelock.can_lease(client) &&
        (diri->get_client_cap_pending(client) & (CEPH_CAP_FILE_SHARED | CEPH_CAP_FILE_EXCL)) == 0)) &&
       dn->lock.can_lease(client))
-    mask |= CEPH_LOCK_DN;
+    mask |= 1;  // dentry lease.  always 1.
   
   _issue_client_lease(dn, mask, pool, client, bl, now, session);
   return mask;