Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 30 Sep 2015 21:11:18 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-fs@FreeBSD.org
Subject:   [Bug 159402] [zfs][loader] symlinks cause I/O errors
Message-ID:  <bug-159402-3630-PGEtX2PGMF@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-159402-3630@https.bugs.freebsd.org/bugzilla/>
References:  <bug-159402-3630@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=159402

--- Comment #1 from Rolf Grossmann <rg@progtech.net> ---
I'm also experiencing this problem. However my understanding of the zfs code
ended when I couldn't find documentation on ZFS system attributes (other than
the comment in /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c).

The problem seems (to my limited understanding) that symlinks are now stored in
system attributes blocks instead of the physical znode. However the code in
/sys/boot/zfs/zfsimpl.c uses some magical constants from
/sys/cddl/boot/zfs/zfsimpl.h to determine e.g. the file type in
zfs_dnode_stat(). However when zfs_lookup() hits a symlink, it doesn't check
for the SA block. Instead it finds that the link target can't be in dn_bonus
(even clang notices) and tries to read file contents for it. Of course there
aren't any, which results in the error message.

Now id anybody could point out how to get the link data offset in the SA block,
I'd prepare a patch. The zfs_sa_readlink() function in
/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_sa.c did not help :(

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-159402-3630-PGEtX2PGMF>