3629 NFSv4 client: assertion failed: vp->v_filocks == NULL, file: ../../common/fs/vnode.c, line: 2429
Review Request #374 — Created Feb. 20, 2017 and submitted
In a case the file open recovery fails (so the R4RECOVERR is set for a particular rnode4_t) then the reclaim_one_lock() does not attempt to recover lost locks for such a file and returns success. This causes that the relock_file() leaks lost locks (in v_filocks).
I confirmed that the reproducible steps described in the bugreport no longer causes the panic. I also tested many different locking scenarios to make sure: - there is no regression introduced by this fix, - there is no other scenario causing the same panic.
Status: Closed (submitted)
commit faf39f174e3f2f426d74639ff702c5ba9f29f56b Author: Marcel Telka <firstname.lastname@example.org> AuthorDate: Mon Feb 20 07:57:32 2017 +0100 Commit: Robert Mustacchi <email@example.com> CommitDate: Mon Feb 27 17:15:57 2017 +0000 3629 NFSv4 client: assertion failed: vp->v_filocks == NULL, file: ../../common/fs/vnode.c, line: 2429 Reviewed by: Arne Jansen <firstname.lastname@example.org> Approved by: Robert Mustacchi <email@example.com> :100644 100644 9fea9eb... 7d94f94... M usr/src/uts/common/fs/nfs/nfs4_recovery.c