On Tue, May 01, 2007 at 05:48:15PM -0700, Matthew Ahrens wrote:
> Pawel Jakub Dawidek wrote:
> >so I started to use it. The thing is that it broke some functionality.
> >For example 'zpool status -v' doesn't show file names anymore.
> >I tracked it down to the zap_value_search() function and changing:
> > if (za->za_first_integer == value) {
> >into:
> > if (ZFS_DIRENT_OBJ(za->za_first_integer) == value) {
>
> This is essentially correct, although it breaks the layering (the ZAP
> shouldn't have such intimate knowledge of the ZPL's usage). Better would be
> to pass in a mask to
> zap_value_search().
>
> But, this is certainly a bug, which I'll file shortly.
>
> Have you found any other functionality to break when you store the file type
> in the directory entry?
I think this whole mechanism of storing type should be revised, because
when we move ZFS file system created on Solaris to FreeBSD/MacOSX,
d_type will be set to 0 (DT_UNKNOWN).
I don't see easy fix for that. On Solaris struct dirent just doesn't
contain d_type field and ZFS doesn't have a field indicating entry type
in the zap structure. Will it be possible to store entry type also in
Solaris in a way suggested for MacOS X?
--
Pawel Jakub Dawidek http://www.wheel.pl
pjd at FreeBSD.org http://www.FreeBSD.org
FreeBSD committer Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
URL:
<http://mail.opensolaris.org/pipermail/zfs-code/attachments/20070502/069e80f9/attachment.bin>