• Jeff Layton's avatar
    ceph: do a LOOKUP in d_revalidate instead of GETATTR · 5eb9f604
    Jeff Layton authored
    In commit c3f4688a (ceph: don't set req->r_locked_dir in
    ceph_d_revalidate), we changed the code to do a GETATTR instead of a
    LOOKUP as the parent info isn't strictly necessary to revalidate the
    dentry. What we missed there though is that in order to update the lease
    on the dentry after revalidating it, we _do_ need parent info.
    Change ceph_d_revalidate back to doing a LOOKUP instead of a GETATTR so
    that we can get the parent info in order to update the lease from
    ceph_fill_trace. Note that we set req->r_parent here, but we cannot set
    the CEPH_MDS_R_PARENT_LOCKED flag as we can't guarantee that it is.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Reviewed-by: default avatarYan, Zheng <zyan@redhat.com>
    Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
dir.c 39.5 KB