On Tue, Aug 14, 2007 at 08:23:29PM -0400, Chris Mason wrote: > On Tue, 14 Aug 2007 11:44:37 -0400 > Josef Bacik <[EMAIL PROTECTED]> wrote: > > > Hello, > > > > I assume the block stuff I sent is OK so I'm going to start working > > on xattrs, unless there are any objections? Want to make sure since > > I have a tendancy to step on your toes Chris :). > > Hi, sorry for the delay. The top of my list right now is real tree > locking, so xattrs won't cause too many problems. Your accounting > stuff looks pretty good to me, but we need some btrfsctl command or > sysfs code (sysfs would be better) to spit out information about > usage/quotas. > > Xattrs are a fairly good sized chunk of work, as long as you don't mind > having to go through a few iterations I'd be thrilled to see someone do > it. > > Basically I would start with small xattrs that fit inside a tree > block. The idea is to put these small xattrs inside directory > items (similar to how we pack file bodies inside extents). But, you'll > need a new key type because directories already have directory items. > In ctree.h you'll find: > > #define BTRFS_INODE_ITEM_KEY 1 > > /* reserve 2-15 close to the inode for later flexibility */ > > We want the xattrs right after the inode on disk, so use key type 2. > > You'll have to refactor the directory code a little so you can reuse it > to store the xattrs. directory items have a flags field and a type > field. The type field stores things used by readdir, but the flags > field is currently unused. > > For large xattrs the dir items would point to a key, which is just a > regularly allocated inode. But you can get there later. >
Well that is a nice helping of work. I'll go ahead and add the sysfs code for the block accounting stuff so you don't have a half-assed solution, and provided you don't have anything else more pressing you'd like me to work on I'll move on to xattrs. I don't mind having to go through a few interations, it took me 5 just for the fsync stuff :). Thanks much, Josef _______________________________________________ Btrfs-devel mailing list [email protected] http://oss.oracle.com/mailman/listinfo/btrfs-devel
