On Oct 29, 2013, at 8:41 AM, Myklebust, Trond <Trond.Myklebust@xxxxxxxxxx> wrote: > > On Oct 29, 2013, at 8:33 AM, Weston Andros Adamson <dros@xxxxxxxxxx> wrote: > >> >> On Oct 29, 2013, at 8:32 AM, Weston Andros Adamson <dros@xxxxxxxxxx> wrote: >> >>> On Oct 28, 2013, at 5:06 PM, Myklebust, Trond <Trond.Myklebust@xxxxxxxxxx> wrote: >>> >>>> On Mon, 2013-10-21 at 13:10 -0400, Weston Andros Adamson wrote: >>>>> There's already a valid state (the one being recovered), so just >>>>> reference it. Also clean up error paths to avoid ref leaks. >>>>> >>>>> Signed-off-by: Weston Andros Adamson <dros@xxxxxxxxxx> >>>>> --- >>>>> fs/nfs/nfs4proc.c | 13 ++++++++----- >>>>> 1 file changed, 8 insertions(+), 5 deletions(-) >>>>> >>>>> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c >>>>> index 8140366..8ae1589 100644 >>>>> --- a/fs/nfs/nfs4proc.c >>>>> +++ b/fs/nfs/nfs4proc.c >>>>> @@ -1323,14 +1323,14 @@ _nfs4_opendata_reclaim_to_nfs4_state(struct nfs4_opendata *data) >>>>> goto err; >>>>> } >>>>> >>>>> - ret = -ENOMEM; >>>>> - state = nfs4_get_open_state(inode, data->owner); >>>>> - if (state == NULL) >>>>> + /* referenced the passed state */ >>>>> + ret = -EINVAL; >>>>> + if (state == NULL || !atomic_inc_not_zero(&state->count)) >>>>> goto err; >>>> >>>> We already know that state != NULL, and that state->count != 0 here, so >>>> I applied a simplified version of this patch that just does an >>>> atomic_inc(&state->count) just before the function return. >>> >>> I just checked out the simplified patch - it looks good. >>> >>> Acked-by: Weston Andros Adamson <dros@xxxxxxxxxx> >> >> Oh, besides redundant CC lines? >> >> Cc: stable@xxxxxxxxxxxxxxx # 3.7.x: a43ec98b72a: NFSv4: don't fail on missing >> Cc: stable@xxxxxxxxxxxxxxx # 3.7.x > > Those are there to indicate a dependency on the other patch. I believe this is in accordance with Documentation/stable-patches.txt... Ah! Thanks, -dros-- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html