On Mon, Dec 17, 2012 at 06:28:40PM -0500, Chris Mason wrote:
> On Mon, Dec 17, 2012 at 04:09:07PM -0700, Zach Brown wrote:
> > 1) The fundamental fix is to re-use deleted entry positions.  Do we add
> > another cache to index unlinked positions?  Do we add an unreliable
> > best-effort walk of the tree looking for holes in the key space?  At the
> > very least test index_cnt in unlink to get the basically useless
> > index_cnt--? :)
> 
> The index is dense enough that we can search for free spots without too
> much pain.  But, more below.

OK.  Want me to take a stab at it?  Is there a similar use somewhere I
should work from?

> > 2) Regardless of that, we have to deal with existing entry items with
> > giant keys.  If for no other reason than big jerks making corrupt images
> > and leaving them on usb keys in Josef's driveway.  Should we drop the
> > silly INT_MAX setting for 64bit callers and return -EOVERFLOW for 32bit
> > callers?  (That'd be gross, but not unheard of.  ext4 has grown htree
> > behaviour that depends on compat detection: see its is_32bit_api()
> > callers.)
> > 
> > I can make up some fixes but I'd love to hear strong opinions first, if
> > anyone's got 'em :).
> 
> If we go past the 32 bit number we can use the hash offsets in readdir,
> and just flag the directory as hashme-in-readdir

Hmm.  That sounds painful given either hash collisions or reconnecting
nfs clients with previous f_pos values in use.

With a dencent entry key allocator it sounds a lot cleaner to me to just
admit that 32bit apps can't see more dirents than their f_pos can
represent.  It's already based on the number of entries rather than the
bytes of entries so it'd be pretty hard to exhaust.

Am I .. not right? :)

- z
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to