From: Jeff Layton <jlayton@redhat.com>
To: "Yan, Zheng" <zyan@redhat.com>, ceph-devel@vger.kernel.org
Subject: Re: [PATCH 1/2] ceph: update ceph_dentry_info::lease_session when necessary
Date: Thu, 06 Jul 2017 09:21:06 -0400 [thread overview]
Message-ID: <1499347266.4812.11.camel@redhat.com> (raw)
In-Reply-To: <20170706080212.28111-1-zyan@redhat.com>
On Thu, 2017-07-06 at 16:02 +0800, Yan, Zheng wrote:
> Current code does not update ceph_dentry_info::lease_session once
> it is set. If auth mds of corresponding dentry changes, dentry lease
> stays in invalid state.
>
> Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
> ---
> fs/ceph/inode.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
> index 53f23c9..220dfd8 100644
> --- a/fs/ceph/inode.c
> +++ b/fs/ceph/inode.c
> @@ -1016,6 +1016,7 @@ static void update_dentry_lease(struct dentry *dentry,
> long unsigned ttl = from_time + (duration * HZ) / 1000;
> long unsigned half_ttl = from_time + (duration * HZ / 2) / 1000;
> struct inode *dir;
> + struct ceph_mds_session *old_lease_session = NULL;
>
> /*
> * Make sure dentry's inode matches tgt_vino. NULL tgt_vino means that
> @@ -1051,8 +1052,10 @@ static void update_dentry_lease(struct dentry *dentry,
> time_before(ttl, di->time))
> goto out_unlock; /* we already have a newer lease. */
>
> - if (di->lease_session && di->lease_session != session)
> - goto out_unlock;
> + if (di->lease_session && di->lease_session != session) {
> + old_lease_session = di->lease_session;
> + di->lease_session = NULL;
> + }
>
> ceph_dentry_lru_touch(dentry);
>
> @@ -1065,6 +1068,8 @@ static void update_dentry_lease(struct dentry *dentry,
> di->time = ttl;
> out_unlock:
> spin_unlock(&dentry->d_lock);
> + if (old_lease_session)
> + ceph_put_mds_session(old_lease_session);
> return;
> }
>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
prev parent reply other threads:[~2017-07-06 13:21 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-06 8:02 [PATCH 1/2] ceph: update ceph_dentry_info::lease_session when necessary Yan, Zheng
2017-07-06 13:21 ` Jeff Layton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1499347266.4812.11.camel@redhat.com \
--to=jlayton@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=zyan@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.