From: Kinglong Mee <kinglongmee@gmail.com>
To: "J. Bruce Fields" <bfields@fieldses.org>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Cc: kinglongmee@gmail.com
Subject: [PATCH 05/14] nfsd: Use check_stateid_generation() for generation checking
Date: Mon, 13 Jul 2015 17:31:21 +0800 [thread overview]
Message-ID: <55A38569.8070405@gmail.com> (raw)
In-Reply-To: <55A384B1.8030207@gmail.com>
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-13 9:31 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 ` Kinglong Mee [this message]
2015-07-22 18:22 ` [PATCH 05/14] nfsd: Use check_stateid_generation() for generation checking 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=55A38569.8070405@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 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.