From 034b2b4ea2c59541bec8243f25f14033cd1ae8b6 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Fri, 7 Jan 2011 12:55:58 -0500 Subject: [PATCH] nfs41_session_renew() error handling on failure to renew a session, we don't need to free the session (this leads to crashes). if we simply return the error to compound_encode_send_decode(), we'll fail any subsequent operations on the session, but still be able to unmount and remain stable Signed-off-by: Casey Bodley --- daemon/nfs41_session.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/daemon/nfs41_session.c b/daemon/nfs41_session.c index ffc1477..3e31589 100644 --- a/daemon/nfs41_session.c +++ b/daemon/nfs41_session.c @@ -314,23 +314,16 @@ int nfs41_session_renew( status = reinit_slot_table(&session->table); if (status) { eprintf("init_slot_table failed %d\n", status); - goto out_err_session; + goto out_unlock; } status = nfs41_create_session(session->client, session, FALSE); - if (status && status != NFS4ERR_STALE_CLIENTID) { + if (status) { eprintf("nfs41_create_session failed %d\n", status); - status = ERROR_BAD_NET_RESP; - goto out_err_slot; + goto out_unlock; } +out_unlock: ReleaseSRWLockExclusive(&session->client->session_lock); -out: return status; -out_err_slot: - free_slot_table(&session->table); -out_err_session: - ReleaseSRWLockExclusive(&session->client->session_lock); - free(session); - goto out; } int nfs41_session_set_lease(