Xueqian Hu has uploaded this change for review.

View Change

Courteous Server fix

Due to our courteous server support, a client won't get expired
immediately after lease time. However, an "expire" client will
be added to expired_client_ids_list only when the reaper runs.

Between time after the end of the lease and before the reaper
being triggered, if the client comes back to RENEW(or other
operations will renew the lease), since the client has not yet
been added to expired list _valid_lease check will get 0 and
ganesha will truly expire that client.

It is a common case the client comes back for renewing right
after the lease end. Instead of waiting for reaper, one fix is
to add the client to expired list intentionally in
reserve_lease_or_expire.

Change-Id: Ic12b2053702638648f58cc1eea228f07599108ca
Signed-off-by: Xueqian Hu <xh140312@outlook.com>
---
M src/SAL/nfs4_lease.c
1 file changed, 24 insertions(+), 10 deletions(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/24/1203324/1

To view, visit change 1203324. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: newchange
Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: Ic12b2053702638648f58cc1eea228f07599108ca
Gerrit-Change-Number: 1203324
Gerrit-PatchSet: 1
Gerrit-Owner: Xueqian Hu <xh140312@outlook.com>