Zheng mentioned that he had gotten a report that testing with vdbench on a v4.8 kernel showed a large increase in the number of GETATTR calls being made. Since we had changed the d_revalidate code to use a GETATTR call and not set r_locked_dir in the request, the dentry lease wasn't getting updated from the traces, even when the MDS had granted one. This set does a bit of cleanup and bugfixing in ceph_fill_trace, and sets it up to update the dentry lease even when r_locked_dir isn't set in the request. I was able to reproduce this by hand, and this seems to fix the issue. Jeff Layton (5): ceph: don't update_dentry_lease unless we actually got one ceph: vet the parent inode before updating dentry lease ceph: clean up r_aborted handling in ceph_fill_trace ceph: call update_dentry_lease even when r_locked dir is not set ceph: do a LOOKUP in d_revalidate instead of GETATTR fs/ceph/dir.c | 4 ++-- fs/ceph/inode.c | 51 ++++++++++++++++++++++++++++++++++----------------- 2 files changed, 36 insertions(+), 19 deletions(-) -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html