Strange behavior of .zfs/snapshot/* directories in respect to ".." path.
Andriy Gapon
avg at FreeBSD.org
Mon May 29 06:11:24 UTC 2017
On 29/05/2017 01:59, Lev Serebryakov wrote:
> 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!
You probably meant r318716 again here?
If yes, then it's probably exactly the same issue as we had in head: r308826.
Could you please test if that change helps?
I'll take care of this.
>> 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);
>
>
>
>
--
Andriy Gapon
More information about the freebsd-fs
mailing list