[pnfs] [PATCH] [SQUASHME] nfs41: get rid of session ref_count

Benny Halevy bhalevy at panasas.com
Mon Jul 14 12:41:49 EDT 2008


OK.  No problem.

Benny

On Jul. 14, 2008, 19:40 +0300, "Labiaga, Ricardo" <Ricardo.Labiaga at netapp.com> wrote:
> Hi Benny,
> 
> Please don't remove the session ref_count yet.  As we mentioned during
> the conf call, Andy and I have been discussing whether a session can be
> shared between mounts.  This is why the ref count was in there to begin
> with.  We're converging on our thoughts and will present a proposal to
> the team soon.
> 
> Thanks,
> 
> - ricardo
>  
> 
>> -----Original Message-----
>> From: Benny Halevy [mailto:bhalevy at panasas.com] 
>> Sent: Sunday, July 13, 2008 4:51 AM
>> To: Adamson, Andy
>> Cc: pnfs at linux-nfs.org
>> Subject: [pnfs] [PATCH] [SQUASHME] nfs41: get rid of session ref_count
>>
>> Signed-off-by: Benny Halevy <bhalevy at panasas.com>
>> ---
>>  fs/nfs/nfs41_session_recovery.c |    3 +--
>>  fs/nfs/nfs4proc.c               |   10 +++-------
>>  include/linux/nfs4_session.h    |    1 -
>>  3 files changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/fs/nfs/nfs41_session_recovery.c 
>> b/fs/nfs/nfs41_session_recovery.c
>> index 09c5f43..4aa79cc 100644
>> --- a/fs/nfs/nfs41_session_recovery.c
>> +++ b/fs/nfs/nfs41_session_recovery.c
>> @@ -96,8 +96,7 @@ static int session_reclaimer(void *arg)
>>  		dprintk("%s Session Reset\n", __func__);
>>  		/* Reset is called only when all slots are clear.
>>  		 *
>> -		 * Bail on the reset if destroy session op fails or if
>> -		 * the session ref_count is not 1
>> +		 * Bail on the reset if destroy session op fails.
>>  		 *
>>  		 * Of course since we are resetting the session,
>>  		 * it's OK if the session is already destroyed
>> diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
>> index 7e3661e..c9e0f22 100644
>> --- a/fs/nfs/nfs4proc.c
>> +++ b/fs/nfs/nfs4proc.c
>> @@ -4620,8 +4620,6 @@ struct nfs4_session *nfs4_alloc_session(void)
>>  
>>  	nfs41_set_session_alloc(session);
>>  
>> -	atomic_set(&session->ref_count, 1);
>> -
>>  	nfs4_init_channel(&session->fore_channel);
>>  	return session;
>>  }
>> @@ -4635,11 +4633,9 @@ static void nfs4_free_session(struct 
>> nfs4_session *session)
>>  void nfs4_put_session(struct nfs4_session **session)
>>  {
>>  	dprintk("--> nfs4_put_session()\n");
>> -	if (atomic_dec_and_test(&((*session)->ref_count))) {
>> -		nfs4_destroy_slot_table(&((*session)->fore_channel));
>> -		nfs4_free_session(*session);
>> -		*session = NULL;
>> -	}
>> +	nfs4_destroy_slot_table(&((*session)->fore_channel));
>> +	nfs4_free_session(*session);
>> +	*session = NULL;
>>  	dprintk("<-- nfs4_put_session()\n");
>>  }
>>  
>> diff --git a/include/linux/nfs4_session.h 
>> b/include/linux/nfs4_session.h
>> index 551eb61..6245ffc 100644
>> --- a/include/linux/nfs4_session.h
>> +++ b/include/linux/nfs4_session.h
>> @@ -57,7 +57,6 @@ struct nfs4_session {
>>  	struct nfs4_channel		fore_channel;
>>  	struct nfs4_channel		back_channel;
>>  
>> -	atomic_t			ref_count;
>>  	struct rpc_clnt			*clnt;
>>  	struct nfs_client		*clp;
>>  };
>> -- 
>> 1.5.6.2
>>
>> _______________________________________________
>> pNFS mailing list
>> pNFS at linux-nfs.org
>> http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs
>>



More information about the pNFS mailing list