From 263260d5a6132f883490f5bad10bdee75e4473c0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 27 Apr 2008 17:04:11 -0700 Subject: [PATCH] kclient: fix lease time comparison --- src/kernel/inode.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/kernel/inode.c b/src/kernel/inode.c index db6c8b727cb25..8572613ccee9f 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -232,7 +232,7 @@ void ceph_update_inode_lease(struct inode *inode, * be careful: we can't remove lease from a different session * without holding that other session's s_mutex. so don't. */ - if (ttl >= ci->i_lease_ttl && + if (!time_before(ttl, ci->i_lease_ttl) && (!ci->i_lease_session || ci->i_lease_session == session)) { ci->i_lease_ttl = ttl; ci->i_lease_mask = mask; @@ -301,7 +301,7 @@ void ceph_update_dentry_lease(struct dentry *dentry, return; spin_lock(&dentry->d_lock); - if (ttl < dentry->d_time) + if (time_before(ttl, dentry->d_time)) goto fail_unlock; /* we already have a newer lease. */ di = ceph_dentry(dentry); @@ -409,8 +409,8 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req, /* dentry */ ininfo = rinfo->trace_in[d+1].in; if (d == rinfo->trace_numd-1 && req->r_last_dentry) { - dout(10, "fill_trace using provided dentry\n"); dn = req->r_last_dentry; + dout(10, "fill_trace using provided dentry %p\n", dn); ceph_init_dentry(dn); /* just in case */ req->r_last_dentry = NULL; if (req->r_old_dentry) { -- 2.39.5