[Btrfs-devel] btrfs and git-reflog

Chris Mason chris.mason at oracle.com
Fri Jan 25 13:37:25 PST 2008


On Friday 25 January 2008, Theodore Tso wrote:
> On Fri, Jan 25, 2008 at 01:55:37PM -0500, Chris Mason wrote:
> > Since btrfs maintains both a name index and an inode index, I can
> > iterate over the name index (hash values) for use cases that require
> > telldir/seekdir.  At any rate, there are a variety of choices for
> > working around it, but I'm focusing on the disk format first ;)
>
> Well, there is a disk format way of handling the problem, and which is
> what JFS used; it simply maintained associated a separate "telldir"
> cookie for each file, and had separate b-tree which allowed for fast
> access each file given its telldir cookie.  btrfs could theoretically
> do something similar.  I'd suggest thinking about this as an optional
> feature, which would be enabled if full 100% reliable telldir/seekdir
> support is required, or for NFS servers.
>
> There are indeed workarounds, but unfortunately they all have
> downsides....
>

Hmmm, for seekdir and telldir, my understanding was that I was allowed to 
return entries more than once, especially in the face of changes to the 
directory in between calls.  

http://www.opengroup.org/onlinepubs/000095399/functions/seekdir.html

Does the JFS cookie allow you to get from the file to to the directory entry?  
We've got that now via backrefs.

-chris



More information about the Btrfs-devel mailing list