Description of problem: When nfsv4-client used expired stateid which generated 'lease_time' seconds ago, nfsv4-server return NFS4ERR_BAD_STATEID, but according to RFC3530, nfsv4-server should return NFS4ERR_EXPIRED in this case. -- [RFC3530] 8.6.3. Network Partitions and Recovery If the duration of a network partition is greater than the lease period provided by the server, the server will have not received a lease renewal from the client. If this occurs, the server may free all locks held for the client. As a result, all stateid held by the client will become invalid or stale. Once the client is able to reach the server after such a network partition, all I/O submitted by the client with the now invalid stateid will fail with the server returning the error NFS4ERR_EXPIRED. -- Version-Release number of selected component (if applicable): Kernel 2.6.18-128 How reproducible: Every time. Steps to Reproduce: Server: 0. mkdir -p /work/nfs 1. Add "/work/nfs *(rw,insecure,no_root_squash,fsid=0)" to /etc/exports 2. echo 90 > /proc/fs/nfsd/nfsv4leasetime 3.service nfs restart 0. mkdir -p /mnt/point 1. mount -t nfs4 server:/work/nfs /mnt/point 2. gcc -o nfs_test nfs_test.c 3. ./nfs_test serverip Actual results: Fail: CLOSE after lease timeout should return NFS4ERR_EXPIRED, instead got NFS4ERR_BAD_STATEID Expected results: Pass: CLOSE after lease timeout server return NFS4ERR_EXPIRED Additional info: I've done initial testing of this patch, it seems sane, ran it through the connectathon tests, no additional tests failed.
Created attachment 355633 [details] The attachment is a file, unix line endings, diff format.
Created attachment 355634 [details] Test case as shown in steps to reproudce.
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2010-0178.html