* [PATCH 1/7] nfsd: remove unused get_new_stid() [not found] <1362513772-15174-1-git-send-email-tj@kernel.org> @ 2013-03-05 20:02 ` Tejun Heo 2013-03-05 20:05 ` J. Bruce Fields 2013-03-05 20:02 ` [PATCH 2/7] nfsd: convert to idr_alloc() Tejun Heo 1 sibling, 1 reply; 4+ messages in thread From: Tejun Heo @ 2013-03-05 20:02 UTC (permalink / raw) To: akpm Cc: linux-kernel, bfields, jackm, ogerlitz, roland, dan.magenheimer, gregkh, vjaquez, rene.sapiens, x0095078, omar.ramirez, Tejun Heo, linux-nfs get_new_stid() is no longer used since 3abdb607125 ("nfsd4: simplify idr allocation"). Remove it. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: linux-nfs@vger.kernel.org --- fs/nfsd/nfs4state.c | 31 ------------------------------- 1 file changed, 31 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 16d39c6..d91d6db 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -230,37 +230,6 @@ static void nfs4_file_put_access(struct nfs4_file *fp, int oflag) __nfs4_file_put_access(fp, oflag); } -static inline int get_new_stid(struct nfs4_stid *stid) -{ - static int min_stateid = 0; - struct idr *stateids = &stid->sc_client->cl_stateids; - int new_stid; - int error; - - error = idr_get_new_above(stateids, stid, min_stateid, &new_stid); - /* - * Note: the necessary preallocation was done in - * nfs4_alloc_stateid(). The idr code caps the number of - * preallocations that can exist at a time, but the state lock - * prevents anyone from using ours before we get here: - */ - WARN_ON_ONCE(error); - /* - * It shouldn't be a problem to reuse an opaque stateid value. - * I don't think it is for 4.1. But with 4.0 I worry that, for - * example, a stray write retransmission could be accepted by - * the server when it should have been rejected. Therefore, - * adopt a trick from the sctp code to attempt to maximize the - * amount of time until an id is reused, by ensuring they always - * "increase" (mod INT_MAX): - */ - - min_stateid = new_stid+1; - if (min_stateid == INT_MAX) - min_stateid = 0; - return new_stid; -} - static struct nfs4_stid *nfs4_alloc_stid(struct nfs4_client *cl, struct kmem_cache *slab) { -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/7] nfsd: remove unused get_new_stid() 2013-03-05 20:02 ` [PATCH 1/7] nfsd: remove unused get_new_stid() Tejun Heo @ 2013-03-05 20:05 ` J. Bruce Fields 0 siblings, 0 replies; 4+ messages in thread From: J. Bruce Fields @ 2013-03-05 20:05 UTC (permalink / raw) To: Tejun Heo Cc: akpm, linux-kernel, jackm, ogerlitz, roland, dan.magenheimer, gregkh, vjaquez, rene.sapiens, x0095078, omar.ramirez, linux-nfs On Tue, Mar 05, 2013 at 12:02:46PM -0800, Tejun Heo wrote: > get_new_stid() is no longer used since 3abdb607125 ("nfsd4: simplify > idr allocation"). Remove it. Whoops, thanks for catching that. Acked-by: J. Bruce Fields <bfields@redhat.com> > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: "J. Bruce Fields" <bfields@fieldses.org> > Cc: linux-nfs@vger.kernel.org > --- > fs/nfsd/nfs4state.c | 31 ------------------------------- > 1 file changed, 31 deletions(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index 16d39c6..d91d6db 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -230,37 +230,6 @@ static void nfs4_file_put_access(struct nfs4_file *fp, int oflag) > __nfs4_file_put_access(fp, oflag); > } > > -static inline int get_new_stid(struct nfs4_stid *stid) > -{ > - static int min_stateid = 0; > - struct idr *stateids = &stid->sc_client->cl_stateids; > - int new_stid; > - int error; > - > - error = idr_get_new_above(stateids, stid, min_stateid, &new_stid); > - /* > - * Note: the necessary preallocation was done in > - * nfs4_alloc_stateid(). The idr code caps the number of > - * preallocations that can exist at a time, but the state lock > - * prevents anyone from using ours before we get here: > - */ > - WARN_ON_ONCE(error); > - /* > - * It shouldn't be a problem to reuse an opaque stateid value. > - * I don't think it is for 4.1. But with 4.0 I worry that, for > - * example, a stray write retransmission could be accepted by > - * the server when it should have been rejected. Therefore, > - * adopt a trick from the sctp code to attempt to maximize the > - * amount of time until an id is reused, by ensuring they always > - * "increase" (mod INT_MAX): > - */ > - > - min_stateid = new_stid+1; > - if (min_stateid == INT_MAX) > - min_stateid = 0; > - return new_stid; > -} > - > static struct nfs4_stid *nfs4_alloc_stid(struct nfs4_client *cl, struct > kmem_cache *slab) > { > -- > 1.8.1.4 > ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 2/7] nfsd: convert to idr_alloc() [not found] <1362513772-15174-1-git-send-email-tj@kernel.org> 2013-03-05 20:02 ` [PATCH 1/7] nfsd: remove unused get_new_stid() Tejun Heo @ 2013-03-05 20:02 ` Tejun Heo 2013-03-05 22:31 ` J. Bruce Fields 1 sibling, 1 reply; 4+ messages in thread From: Tejun Heo @ 2013-03-05 20:02 UTC (permalink / raw) To: akpm Cc: linux-kernel, bfields, jackm, ogerlitz, roland, dan.magenheimer, gregkh, vjaquez, rene.sapiens, x0095078, omar.ramirez, Tejun Heo, linux-nfs idr_get_new*() and friends are about to be deprecated. Convert to the new idr_alloc() interface. Only compile-tested. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: linux-nfs@vger.kernel.org --- fs/nfsd/nfs4state.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index d91d6db..2e27430 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -242,9 +242,8 @@ kmem_cache *slab) if (!stid) return NULL; - if (!idr_pre_get(stateids, GFP_KERNEL)) - goto out_free; - if (idr_get_new_above(stateids, stid, min_stateid, &new_id)) + new_id = idr_alloc(stateids, stid, min_stateid, 0, GFP_KERNEL); + if (new_id < 0) goto out_free; stid->sc_client = cl; stid->sc_type = 0; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/7] nfsd: convert to idr_alloc() 2013-03-05 20:02 ` [PATCH 2/7] nfsd: convert to idr_alloc() Tejun Heo @ 2013-03-05 22:31 ` J. Bruce Fields 0 siblings, 0 replies; 4+ messages in thread From: J. Bruce Fields @ 2013-03-05 22:31 UTC (permalink / raw) To: Tejun Heo Cc: akpm, linux-kernel, jackm, ogerlitz, roland, dan.magenheimer, gregkh, vjaquez, rene.sapiens, x0095078, omar.ramirez, linux-nfs On Tue, Mar 05, 2013 at 12:02:47PM -0800, Tejun Heo wrote: > idr_get_new*() and friends are about to be deprecated. Convert to the > new idr_alloc() interface. > > Only compile-tested. Runs fine too--thanks. Acked-by: J. Bruce Fields <bfields@redhat.com> --b. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Cc: "J. Bruce Fields" <bfields@fieldses.org> > Cc: linux-nfs@vger.kernel.org > --- > fs/nfsd/nfs4state.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index d91d6db..2e27430 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -242,9 +242,8 @@ kmem_cache *slab) > if (!stid) > return NULL; > > - if (!idr_pre_get(stateids, GFP_KERNEL)) > - goto out_free; > - if (idr_get_new_above(stateids, stid, min_stateid, &new_id)) > + new_id = idr_alloc(stateids, stid, min_stateid, 0, GFP_KERNEL); > + if (new_id < 0) > goto out_free; > stid->sc_client = cl; > stid->sc_type = 0; > -- > 1.8.1.4 > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2013-03-05 22:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1362513772-15174-1-git-send-email-tj@kernel.org>
2013-03-05 20:02 ` [PATCH 1/7] nfsd: remove unused get_new_stid() Tejun Heo
2013-03-05 20:05 ` J. Bruce Fields
2013-03-05 20:02 ` [PATCH 2/7] nfsd: convert to idr_alloc() Tejun Heo
2013-03-05 22:31 ` J. Bruce Fields
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).