[Btrfs-devel] Next things to work on

Josef Bacik jbacik at redhat.com
Tue Aug 14 18:22:51 PDT 2007


On Tue, Aug 14, 2007 at 08:23:29PM -0400, Chris Mason wrote:
> On Tue, 14 Aug 2007 11:44:37 -0400
> Josef Bacik <jbacik at redhat.com> 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



More information about the Btrfs-devel mailing list