The branch stable/12 has been updated by rmacklem:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=c33a5277a0dd605356f905c9f5e0934362c0c877

commit c33a5277a0dd605356f905c9f5e0934362c0c877
Author:     Rick Macklem <rmack...@freebsd.org>
AuthorDate: 2021-02-28 01:54:05 +0000
Commit:     Rick Macklem <rmack...@freebsd.org>
CommitDate: 2021-03-15 19:44:39 +0000

    nfsclient: fix panic in cache_enter_time()
    
    Juraj Lutter (otis@) reported a panic "dvp != vp not true" in
    cache_enter_time() called from the NFS client's nfsrpc_readdirplus()
    function.
    This is specific to an NFSv3 mount with the "rdirplus" mount
    option. Unlike NFSv4, NFSv3 replies to ReaddirPlus
    includes entries for the current directory.
    
    This trivial patch avoids doing a cache_enter_time()
    call for the current directory to avoid the panic.
    
    (cherry picked from commit 3fe2c68ba20fb3365ef91e0b85f88237b5369f38)
---
 sys/fs/nfsclient/nfs_clrpcops.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/fs/nfsclient/nfs_clrpcops.c b/sys/fs/nfsclient/nfs_clrpcops.c
index 901f5f7e906d..e1c5c7ff3316 100644
--- a/sys/fs/nfsclient/nfs_clrpcops.c
+++ b/sys/fs/nfsclient/nfs_clrpcops.c
@@ -3668,6 +3668,7 @@ nfsrpc_readdirplus(vnode_t vp, struct uio *uiop, 
nfsuint64 *cookiep,
                                    ndp->ni_vp = newvp;
                                    NFSCNHASH(cnp, HASHINIT);
                                    if (cnp->cn_namelen <= NCHNAMLEN &&
+                                       ndp->ni_dvp != ndp->ni_vp &&
                                        (newvp->v_type != VDIR ||
                                         dctime.tv_sec != 0)) {
                                        cache_enter_time(ndp->ni_dvp,
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to