Hi. Trond. Normally goto statement is not recommended(pipeline and branch prediction) it is only recommended as a last resort if there is no method to escape this loop. It is just my opinion. And when I think more,, looks not bad about forward goto statement. Thanks~ 2012/3/29 Adamson, Dros <Weston.Adamson@xxxxxxxxxx>: > OK, I need more coffee :) > > -dros > > On Mar 28, 2012, at 11:08 AM, Myklebust, Trond wrote: > >> On Wed, 2012-03-28 at 15:07 +0000, Adamson, Dros wrote: >>> This should probably be sent to stable. >> >> See below. :-) >> >>> -dros >>> >>> On Mar 27, 2012, at 6:35 PM, Trond Myklebust wrote: >>> >>>> We can currently loop forever in nfs4_lookup_root() and in >>>> nfs41_proc_secinfo_no_name(), if the first iteration returns a >>>> NFS4ERR_DELAY or something else that causes exception.retry to get >>>> set. >>>> >>>> Reported-by: Dros Adamson <Weston.Adamson@xxxxxxxxxx> >>>> Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx> >>>> Cc: stable@xxxxxxxxxxxxxxx >>>> --- >>>> fs/nfs/nfs4proc.c | 6 ++++-- >>>> 1 files changed, 4 insertions(+), 2 deletions(-) >>>> >>>> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c >>>> index 45df7d4..ee9ca19 100644 >>>> --- a/fs/nfs/nfs4proc.c >>>> +++ b/fs/nfs/nfs4proc.c >>>> @@ -2290,11 +2290,12 @@ static int nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, >>>> switch (err) { >>>> case 0: >>>> case -NFS4ERR_WRONGSEC: >>>> - break; >>>> + goto out; >>>> default: >>>> err = nfs4_handle_exception(server, err, &exception); >>>> } >>>> } while (exception.retry); >>>> +out: >>>> return err; >>>> } >>>> >>>> @@ -6229,11 +6230,12 @@ nfs41_proc_secinfo_no_name(struct nfs_server *server, struct nfs_fh *fhandle, >>>> case 0: >>>> case -NFS4ERR_WRONGSEC: >>>> case -NFS4ERR_NOTSUPP: >>>> - break; >>>> + goto out; >>>> default: >>>> err = nfs4_handle_exception(server, err, &exception); >>>> } >>>> } while (exception.retry); >>>> +out: >>>> return err; >>>> } >>>> >>>> -- >>>> 1.7.7.6 >>>> >>>> -- >>>> 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 >>> >> >> -- >> Trond Myklebust >> Linux NFS client maintainer >> >> NetApp >> Trond.Myklebust@xxxxxxxxxx >> www.netapp.com >> > -- 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