Re: [PATCH 1/3] Add extended attributes to ext2/3

Andreas Gruenbacher (agruen@suse.de)
Wed, 16 Oct 2002 02:11:39 +0200


On Wednesday 16 October 2002 02:00, Andrew Morton wrote:
> tytso@mit.edu wrote:
> > This is an updated submission of the extended attribute patches for
> > ext2/3 (versus bk-current). Many thanks to Cristoph, Andrea, and Andrew
> > for their suggestions and cleanups.
> >
> > This patch creates a meta block cache which is utilized by the ext3 and
> > ext2 extended attribute patches (patches 2 and 3, respectively). This
> > cache allows directory blocks to be indexed by multiple keys. In the
> > case of the extended attribute patches, it is used to look up blocks by
> > both the block number and by the hash of the extended attributes. This
> > is extremely important to allow the sharing of acl's when stored as
> > extended attributes. Otherwise every single file would require its own,
> > separate, one block overhead to store then ACL, even though there might
> > be a large number of files that have the same ACL.
>
> The key thing here appears to be the cache entry:
>
> +struct mb_cache_entry {
> + struct list_head e_lru_list;
> + struct mb_cache *e_cache;
> + atomic_t e_used;
> + dev_t e_dev;
> + unsigned long e_block;
> + struct list_head e_block_list;
> + struct mb_cache_entry_index e_indexes[0];
> +};
>
> This should be converted to use sector_t for >2TB support, and tested
> with CONFIG_LBD=y and n.

e_block is the block number; the e_indexes are hash values. Ext[23] only has
32bit block numbers. Am I getting you wrong?

> The use of a dev_t search key is a bit old-fashioned. Maybe
> use the address of inode->i_sb->s_bdev?

That would do as well.

A related issue:

Would switching to a more decent hash algorithm in fs/ext?/xattr.c make sense?
I think there are better ones in 2.5. This would only degrade sharing on
"legacy" systems for a while, but the slow down would vanish over time.

--Andreas.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/