Date: Mon, 29 May 2017 01:59:48 +0300 From: Lev Serebryakov <lev@FreeBSD.org> To: Andriy Gapon <avg@FreeBSD.org>, freebsd-fs@FreeBSD.org Subject: Re: Strange behavior of .zfs/snapshot/* directories in respect to ".." path. Message-ID: <1601598008.20170529015948@serebryakov.spb.ru> In-Reply-To: <e7f30e57-a065-dd10-e79a-9a4b770598b6@FreeBSD.org> References: <1acc5917-f10f-b18a-50e0-84661173e85d@FreeBSD.org> <e7f30e57-a065-dd10-e79a-9a4b770598b6@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Andriy, Friday, May 26, 2017, 8:34:31 PM, you wrote: > could you please test the following patch? (1) When I've updated to latest stable/11 revision (r319076) it crashed in ZFS(!) WITH AND WITHOUT patch soon after boot, 100% repeatable (looks like r318716 has HUGE problems): panic: solaris assert: pp != NULL && !pp->valid, file: /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c, line: 430 (kgdb) #0 doadump (textdump=1) at pcpu.h:222 #1 0xffffffff8056ce85 in kern_reboot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:366 #2 0xffffffff8056d460 in vpanic (fmt=<value optimized out>, ap=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:759 #3 0xffffffff8056d4a3 in panic (fmt=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:690 #4 0xffffffff812df23a in assfail (a=<value optimized out>, f=<value optimized out>, l=<value optimized out>) at /usr/src/sys/cddl/compat/opensolaris/kern/opensolaris_cmn_err.c:81 #5 0xffffffff810478fc in zfs_freebsd_write (ap=<value optimized out>) at /usr/src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c:430 #6 0xffffffff80801518 in VOP_WRITE_APV (vop=<value optimized out>, a=0xfffffe04760bd610) at vnode_if.c:1000 #7 0xffffffff80639eed in vn_write (fp=0xfffff80013cfb6e0, uio=0xfffffe04760bd8f0, active_cred=<value optimized out>, flags=<value optimized out>, td=<value optimized out>) at vnode_if.h:413 #8 0xffffffff806379e0 in vn_io_fault1 () at /usr/src/sys/kern/vfs_vnops.c:1076 #9 0xffffffff80635fde in vn_io_fault (fp=<value optimized out>, uio=<value optimized out>, active_cred=<value optimized out>, flags=1, td=<value optimized out>) at /usr/src/sys/kern/vfs_vnops.c:1181 #10 0xffffffff805ca99a in dofilewrite (td=0xfffff8004d086000, fd=<value optimized out>, fp=0xfffff80013cfb6e0, auio=0xfffffe04760bd8f0, offset=<value optimized out>, flags=1) at file.h:307 #11 0xffffffff805ca7a0 in kern_pwritev (td=0xfffff8004d086000, fd=16, auio=0xfffffe04760bd8f0, offset=696) at /usr/src/sys/kern/sys_generic.c:556 #12 0xffffffff805ca67d in sys_pwrite (td=<value optimized out>, uap=<value optimized out>) at /usr/src/sys/kern/sys_generic.c:459 #13 0xffffffff8079f4c6 in amd64_syscall (td=0xfffff8004d086000, traced=0) at subr_syscall.c:135 #14 0xffffffff807827fb in Xfast_syscall () at /usr/src/sys/amd64/amd64/exception.S:396 #15 0x0000000804bb4bfa in ?? () (2) When I've reverted to r318576, this patch helps! > Thank you! > Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c > =================================================================== > --- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c (revision 318865) > +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c (working copy) > @@ -1625,7 +1625,7 @@ zfs_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, > cn.cn_nameptr = "snapshot"; > cn.cn_namelen = strlen(cn.cn_nameptr); > cn.cn_nameiop = cnp->cn_nameiop; > - cn.cn_flags = cnp->cn_flags; > + cn.cn_flags = cnp->cn_flags & ~ISDOTDOT; > cn.cn_lkflags = cnp->cn_lkflags; > error = VOP_LOOKUP(zfsctl_vp, vpp, &cn); > vput(zfsctl_vp); -- Best regards, Lev mailto:lev@FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1601598008.20170529015948>