Message ID | 20170627134344.80072-1-zyan@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 2017-06-27 at 21:43 +0800, Yan, Zheng wrote: > Signed-off-by: "Yan, Zheng" <zyan@redhat.com> > --- > fs/ceph/caps.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c > index f555245..7007ae2 100644 > --- a/fs/ceph/caps.c > +++ b/fs/ceph/caps.c > @@ -3809,6 +3809,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, > */ > void ceph_check_delayed_caps(struct ceph_mds_client *mdsc) > { > + struct inode *inode; > struct ceph_inode_info *ci; > int flags = CHECK_CAPS_NODELAY; > > @@ -3824,9 +3825,15 @@ void ceph_check_delayed_caps(struct ceph_mds_client *mdsc) > time_before(jiffies, ci->i_hold_caps_max)) > break; > list_del_init(&ci->i_cap_delay_list); > + > + inode = igrab(&ci->vfs_inode); > spin_unlock(&mdsc->cap_delay_lock); > - dout("check_delayed_caps on %p\n", &ci->vfs_inode); > - ceph_check_caps(ci, flags, NULL); > + > + if (inode) { > + dout("check_delayed_caps on %p\n", inode); > + ceph_check_caps(ci, flags, NULL); > + iput(inode); > + } > } > spin_unlock(&mdsc->cap_delay_lock); > } Reviewed-by: Jeff Layton <jlayton@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c index f555245..7007ae2 100644 --- a/fs/ceph/caps.c +++ b/fs/ceph/caps.c @@ -3809,6 +3809,7 @@ void ceph_handle_caps(struct ceph_mds_session *session, */ void ceph_check_delayed_caps(struct ceph_mds_client *mdsc) { + struct inode *inode; struct ceph_inode_info *ci; int flags = CHECK_CAPS_NODELAY; @@ -3824,9 +3825,15 @@ void ceph_check_delayed_caps(struct ceph_mds_client *mdsc) time_before(jiffies, ci->i_hold_caps_max)) break; list_del_init(&ci->i_cap_delay_list); + + inode = igrab(&ci->vfs_inode); spin_unlock(&mdsc->cap_delay_lock); - dout("check_delayed_caps on %p\n", &ci->vfs_inode); - ceph_check_caps(ci, flags, NULL); + + if (inode) { + dout("check_delayed_caps on %p\n", inode); + ceph_check_caps(ci, flags, NULL); + iput(inode); + } } spin_unlock(&mdsc->cap_delay_lock); }
Signed-off-by: "Yan, Zheng" <zyan@redhat.com> --- fs/ceph/caps.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)