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>