On Tue, May 02, 2006 at 05:10:09PM -0400, Maury Markowitz wrote:
> >Unfortunately, embedding the extended attributes in the znode_phys_t (as
> >you suggest) is not really practical.  The extended attributes are
> >full-fledged files
> 
> I think that's the disconnect. WHY are they "full-fledged files"?

Because that's what the specification calls for.  If they weren't
full-fledged files, they wouldn't be compatable with existing
interfaces.  That wouldn't necessarily be a bad thing, just a different
thing.  As I mentioned, a new, lighter-weight interface could be
designed in addition to extended attributes.

> >windowing information with the directory entry.  That change would be
> >fairly straightforward:  use the ZAP to store a larger value in the
> >directory entry, adding words that describe the window information.
> 
> I think I need a little hand holding here. Where is the ZAP in relation to 
> the directory or file? I read the documentation to imply that the ZAP was 
> the directory (page 46, bottom) effectively. However, looking at it now, I 
> see there is no file name for instance.
> 
> Reading over section 5, and I correct that a znode_phys_t is "built up 
> inside" a ZAP (potentially micro), and the ZAP itself holds the 
> znode_phys_t and other additional information? If this is correct, is there 
> a diagram somewhere that illustrates the resulting overall structure?

Ah, I see that you've been reading the on-disk format document.  Section
6.2 describes the relation between the ZAP, directory entries, and the
znode_phys_t:

        Filesystem directories are implemented as ZAP objects.  Each
        directory holds a set of name-value pairs which contain the
        names and object numbers for each director entry.  Traversing
        through a directory tree is as simple as looking up the value
        for an entry and reading that object number.

        All filesystem objects contain a znode_phys_t structure in the
        bonus buffer of it's dnode.  This structure stores the
        attributes for the filesystem object.

To recap, the ZAP implements a directory, mapping from file name to
object number.  That object number identifies (ie. refers to) a
particular dnode, which contains a znode_phys_t in the bonus buffer.

As I mentioned, the directory could potentially map from file name to
object number + some additional information, since the values stored in
the ZAP can be variable-length.

Could elaborate on what makes it seem like there "is no file name" and
that the "ZAP itself holds the znode_phys_t"?  Then we can change that
documentation to make it clear that that is not the case.

--matt
_______________________________________________
zfs-discuss mailing list
[EMAIL PROTECTED]
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to