Skip site navigation (1)Skip section navigation (2)
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>