[pnfs] [PATCH 17/17] [SQUASHME] nfs41: optimize nfs41_setup_sequence for the minorversion 0 case
Benny Halevy
bhalevy at panasas.com
Wed Jun 4 04:05:54 EDT 2008
On Jun. 04, 2008, 2:33 +0300, Ricardo Labiaga <ricardo.labiaga at netapp.com> wrote:
> Hi Benny,
>
> I guess this is a matter of style. Most of the minorversion decisions
> were coded using a switch to specifically call out the places dependent
> on minor version. This would make it easy to deal with a new minor
> version in the future. Having said that, it's going to be so long
> before that happens, that I really don't feel strongly either way.
Basically, I'd expect *and hope* that any minor version v > 1
will continue to use sessions, and exchange_id in particular.
For this we'd just need to change: BUG_ON(minorversion > v)
Benny
>
> - ricardo
>
>
> On Tue, 2008-06-03 at 20:41 +0300, Benny Halevy wrote:
>> Signed-off-by: Benny Halevy <bhalevy at panasas.com>
>> ---
>> fs/nfs/nfs4proc.c | 27 ++++++++++-----------------
>> 1 files changed, 10 insertions(+), 17 deletions(-)
>>
>> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
>> index d4cf831..fed52ea 100644
>> --- a/fs/nfs/nfs4proc.c
>> +++ b/fs/nfs/nfs4proc.c
>> @@ -435,26 +435,19 @@ int nfs4_setup_sequence(struct nfs_client *clp,
>>
>> dprintk("--> %s clp %p session %p cl_minorversion %d\n",
>> __func__, clp, session, clp->cl_minorversion);
>> - switch (clp->cl_minorversion) {
>> - case 1:
>> - if (nfs41_test_session_expired(session)) {
>> - ret = nfs41_recover_session_sync(task->tk_client, clp,
>> - session);
>> - if (ret)
>> - break;
>> - }
>> - ret = nfs41_setup_sequence(session, args,
>> - res, cache_reply, task);
>> - break;
>> - case 0:
>> - break;
>> - default:
>> - BUG();
>> - }
>>
>> + if (clp->cl_minorversion == 0)
>> + goto out;
>> + BUG_ON(clp->cl_minorversion != 1);
>> + if (nfs41_test_session_expired(session))
>> + ret = nfs41_recover_session_sync(task->tk_client, clp,
>> + session);
>> + if (!ret)
>> + ret = nfs41_setup_sequence(session, args, res,
>> + cache_reply, task);
>> if (ret)
>> memset(res, 0, sizeof(*res));
>> -
>> +out:
>> dprintk("<-- %s status=%d\n", __func__, ret);
>> return ret;
>> }
More information about the pNFS
mailing list