diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c index 63113e2a4890763e255048c31a0b228cdba13a22..f9b68b2c9b120d71fded84b6ca14558092993f90 100644 --- a/fs/ceph/inode.c +++ b/fs/ceph/inode.c @@ -1466,10 +1466,12 @@ int ceph_fill_trace(struct super_block *sb, struct ceph_mds_request *req) } else if (have_lease) { if (d_unhashed(dn)) d_add(dn, NULL); + } + + if (!d_unhashed(dn) && have_lease) update_dentry_lease(dir, dn, rinfo->dlease, session, req->r_request_started); - } goto done; }