From: Kinglong Mee <kinglongmee@gmail.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
kinglongmee@gmail.com
Subject: Re: [PATCH 01/14] nfsd: Add layouts checking for state resources
Date: Thu, 16 Jul 2015 10:30:37 +0800 [thread overview]
Message-ID: <55A7174D.3070007@gmail.com> (raw)
In-Reply-To: <20150715150311.GA19616@fieldses.org>
On 7/15/2015 23:03, J. Bruce Fields wrote:
> On Mon, Jul 13, 2015 at 05:29:01PM +0800, Kinglong Mee wrote:
>> Layout is a state resource, nfsd should check it too.
>>
>> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
>> ---
>> fs/nfsd/nfs4state.c | 6 ++++--
>> 1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
>> index 61dfb33..e0a4556 100644
>> --- a/fs/nfsd/nfs4state.c
>> +++ b/fs/nfsd/nfs4state.c
>> @@ -2241,6 +2241,7 @@ static bool client_has_state(struct nfs4_client *clp)
>> * Also note we should probably be using this in 4.0 case too.
>> */
>> return !list_empty(&clp->cl_openowners)
>> + || !list_empty(&clp->cl_lo_states)
>> || !list_empty(&clp->cl_delegations)
>> || !list_empty(&clp->cl_sessions);
>> }
>> @@ -4257,8 +4258,9 @@ nfsd4_renew(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
>> goto out;
>> clp = cstate->clp;
>> status = nfserr_cb_path_down;
>> - if (!list_empty(&clp->cl_delegations)
>> - && clp->cl_cb_state != NFSD4_CB_UP)
>> + if ((!list_empty(&clp->cl_delegations)
>> + || !list_empty(&clp->cl_lo_states))
>
> nfsd4_renew is NFSv4.0 only, so I don't think this part is necessary.
>
> That said, it's harmless--why don't we just call client_has_state() here
> instead?
I don't think so.
NFSv4.0's callback path is used for delegation recalling only,
without delegation, callback path is useless.
Also, describing in rfc3530,
When the client holds delegations, it needs to use RENEW to detect
when the server has determined that the callback path is down. When
the server has made such a determination, only the RENEW operation
will renew the lease on delegations. If the server determines the
callback path is down, it returns NFS4ERR_CB_PATH_DOWN. Even though
it returns NFS4ERR_CB_PATH_DOWN, the server MUST renew the lease on
the record locks and share reservations that the client has
established on the server.
I will drop the second modify in version 2.
thanks,
Kinglong Mee
next prev parent reply other threads:[~2015-07-16 2:30 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 9:28 [PATCH 00/14] nfsd: some updates and cleanups Kinglong Mee
2015-07-13 9:29 ` [PATCH 01/14] nfsd: Add layouts checking for state resources Kinglong Mee
2015-07-15 15:03 ` J. Bruce Fields
2015-07-16 2:30 ` Kinglong Mee [this message]
2015-07-16 2:33 ` [PATCH v2] nfsd: Add layouts checking in client_has_state() Kinglong Mee
2015-07-17 15:54 ` [PATCH 01/14] nfsd: Add layouts checking for state resources J. Bruce Fields
2015-07-13 9:29 ` [PATCH 02/14] nfsd: Add missing gen_confirm in nfsd4_setclientid() Kinglong Mee
2015-07-15 20:47 ` J. Bruce Fields
2015-07-15 20:49 ` J. Bruce Fields
2015-07-16 3:36 ` Kinglong Mee
2015-07-16 3:50 ` Kinglong Mee
2015-07-17 15:58 ` J. Bruce Fields
2015-07-17 17:42 ` Jeff Layton
2015-07-17 23:33 ` [PATCH] nfsd: New counter for generating client confirm verifier Kinglong Mee
2015-07-18 12:16 ` Jeff Layton
2015-07-20 20:44 ` J. Bruce Fields
2015-07-23 1:16 ` [PATCH 02/14] nfsd: Add missing gen_confirm in nfsd4_setclientid() Kinglong Mee
2015-07-23 15:53 ` J. Bruce Fields
2015-07-13 9:30 ` [PATCH 03/14] nfsd: Fix memory leak of so_owner.data in nfs4_stateowner Kinglong Mee
2015-07-15 20:57 ` J. Bruce Fields
2015-07-16 4:05 ` [PATCH v2] " Kinglong Mee
2015-07-17 15:59 ` J. Bruce Fields
2015-07-13 9:30 ` [PATCH 04/14] nfsd: Fix a memory leak of struct file_lock Kinglong Mee
2015-07-15 20:59 ` J. Bruce Fields
2015-07-13 9:31 ` [PATCH 05/14] nfsd: Use check_stateid_generation() for generation checking Kinglong Mee
2015-07-22 18:22 ` J. Bruce Fields
2015-07-23 1:09 ` Kinglong Mee
2015-07-13 9:31 ` [PATCH 06/14] nfsd: Drop duplicate locks_init_lock() Kinglong Mee
2015-07-22 18:24 ` J. Bruce Fields
2015-07-13 9:32 ` [PATCH 07/14] nfsd: Remove unneeded values in nfsd4_open() Kinglong Mee
2015-07-13 9:32 ` [PATCH 08/14] nfsd: Drop duplicate checking of seqid in nfsd4_create_session() Kinglong Mee
2015-07-13 9:32 ` [PATCH 09/14] nfsd: Remove nfs4_set_claim_prev() Kinglong Mee
2015-07-13 9:33 ` [PATCH 10/14] nfsd: Remove unused values in nfs4_setlease() Kinglong Mee
2015-07-13 9:33 ` [PATCH 11/14] nfsd: Remove duplicate checking of nfsd_net in nfs4_laundromat() Kinglong Mee
2015-07-13 9:34 ` [PATCH 12/14] nfsd: Remove macro LOFF_OVERFLOW Kinglong Mee
2015-07-13 9:35 ` [PATCH 13/14] nfsd: Use lk_new_xxx instead of v.new.xxx for nfs4_lockowner Kinglong Mee
2015-07-13 9:35 ` [PATCH 14/14] nfsd: Remove unused clientid arguments from, find_lockowner_str{_locked} Kinglong Mee
2015-07-22 19:22 ` J. Bruce Fields
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=55A7174D.3070007@gmail.com \
--to=kinglongmee@gmail.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox