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 05/14] nfsd: Use check_stateid_generation() for generation checking
Date: Thu, 23 Jul 2015 09:09:09 +0800 [thread overview]
Message-ID: <55B03EB5.9080207@gmail.com> (raw)
In-Reply-To: <20150722182228.GA3168@fieldses.org>
On 7/23/2015 02:22, J. Bruce Fields wrote:
> I don't think layout stateid handling is the same as handling of other
> stateid's. See
>
> https://tools.ietf.org/html/rfc5661#section-12.5.3
Yes,
"Given the design goal of pNFS to provide parallelism, the layout
stateid differs from other stateid types in that the client is
expected to send LAYOUTGET and LAYOUTRETURN operations in parallel."
Please ignore this patch.
thanks,
Kinglong Mee
>
> I haven't reviewed it in detail yet.
>
> --b.
>
> On Mon, Jul 13, 2015 at 05:31:21PM +0800, Kinglong Mee wrote:
>> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
>> ---
>> fs/nfsd/nfs4layouts.c | 5 ++---
>> fs/nfsd/nfs4state.c | 2 +-
>> fs/nfsd/state.h | 1 +
>> 3 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c
>> index 6904213..5c0f1d6 100644
>> --- a/fs/nfsd/nfs4layouts.c
>> +++ b/fs/nfsd/nfs4layouts.c
>> @@ -263,9 +263,8 @@ nfsd4_preprocess_layout_stateid(struct svc_rqst *rqstp,
>> goto out;
>> } else {
>> ls = container_of(stid, struct nfs4_layout_stateid, ls_stid);
>> -
>> - status = nfserr_bad_stateid;
>> - if (stateid->si_generation > stid->sc_stateid.si_generation)
>> + status = check_stateid_generation(stateid, &stid->sc_stateid, 1);
>> + if (status)
>> goto out_put_stid;
>> if (layout_type != ls->ls_layout_type)
>> goto out_put_stid;
>> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
>> index 998166d..2edfedc 100644
>> --- a/fs/nfsd/nfs4state.c
>> +++ b/fs/nfsd/nfs4state.c
>> @@ -4474,7 +4474,7 @@ static bool stateid_generation_after(stateid_t *a, stateid_t *b)
>> return (s32)(a->si_generation - b->si_generation) > 0;
>> }
>>
>> -static __be32 check_stateid_generation(stateid_t *in, stateid_t *ref, bool has_session)
>> +__be32 check_stateid_generation(stateid_t *in, stateid_t *ref, bool has_session)
>> {
>> /*
>> * When sessions are used the stateid generation number is ignored
>> diff --git a/fs/nfsd/state.h b/fs/nfsd/state.h
>> index 4874ce5..18d015d 100644
>> --- a/fs/nfsd/state.h
>> +++ b/fs/nfsd/state.h
>> @@ -589,6 +589,7 @@ extern __be32 nfs4_preprocess_stateid_op(struct svc_rqst *rqstp,
>> __be32 nfsd4_lookup_stateid(struct nfsd4_compound_state *cstate,
>> stateid_t *stateid, unsigned char typemask,
>> struct nfs4_stid **s, struct nfsd_net *nn);
>> +__be32 check_stateid_generation(stateid_t *in, stateid_t *ref, bool has_session);
>> struct nfs4_stid *nfs4_alloc_stid(struct nfs4_client *cl,
>> struct kmem_cache *slab);
>> void nfs4_unhash_stid(struct nfs4_stid *s);
>> --
>> 2.4.3
>
next prev parent reply other threads:[~2015-07-23 1:09 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
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 [this message]
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=55B03EB5.9080207@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