]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
NFSv4: handle ERR_GRACE on delegation recalls
authorOlga Kornievskaia <okorniev@redhat.com>
Mon, 11 Aug 2025 18:18:48 +0000 (14:18 -0400)
committerAnna Schumaker <anna.schumaker@oracle.com>
Tue, 23 Sep 2025 17:28:19 +0000 (13:28 -0400)
RFC7530 states that clients should be prepared for the return of
NFS4ERR_GRACE errors for non-reclaim lock and I/O requests.

Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/nfs4proc.c

index ce61253efd45b45e793b7ed8d6018b8a504510e9..297b7c7c0b1bf8b25c279e0b98e4c5710a6a0c68 100644 (file)
@@ -7872,10 +7872,10 @@ int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state,
                return err;
        do {
                err = _nfs4_do_setlk(state, F_SETLK, fl, NFS_LOCK_NEW);
-               if (err != -NFS4ERR_DELAY)
+               if (err != -NFS4ERR_DELAY && err != -NFS4ERR_GRACE)
                        break;
                ssleep(1);
-       } while (err == -NFS4ERR_DELAY);
+       } while (err == -NFS4ERR_DELAY || err == -NFSERR_GRACE);
        return nfs4_handle_delegation_recall_error(server, state, stateid, fl, err);
 }