From: Steve Lord <lord@sgi.com>
To: "Andi Kleen" <ak@suse.de>
Cc: flar@allandria.com, matthew@wil.cx (Matthew Wilcox),
khalfmann@libra.de (Halfmann Klaus),
roman@augan.com (Roman Zippel),
linuxppc-dev@lists.linuxppc.org, linux-fsdevel@vger.kernel.org
Subject: Re: Btree directories (Re: Status of HFS+ support)
Date: Wed, 30 Aug 2000 07:06:36 -0500 [thread overview]
Message-ID: <200008301206.HAA24978@jen.americas.sgi.com> (raw)
In-Reply-To: Your message of "Wed, 30 Aug 2000 10:35:41 +0200
> In theory you could put as much state as you want into a private field
> of the file structure of the directory. This just ignores two ugly things:
> NFS and telldir. Both basically require you to generate stateless 32bit
> cookies that safely walk your directory.
Can't we at least pass the cookie generation and intepretation down to
the filesystem layer, since at least NFS V3 allows bigger handles.
> The only good solution I know is a stable namespace that never shrinks unless
> the last entry is removed (basically what ext2 directories do). Then you can
> just have an offset into that namespace. Namespace could be hash + collision
> counter.
>
> [XFS uses some trick of assuming that buffer sizes are big enough for one
> of their hash buckets, but it'll surely break in a lot of cases]
Not strictly true - the version 1 format of directories in XFS will have
problems with this - they return a 64 bit hash value, it can survive
with half of it - unless a single hash bucket gets too big. This problem
also shows up if you NFS mount an XFS filesystem from Irix onto Linux as
most existing Irix filesystems use V1 directories.
For this reason version 2 directories were introduced, the directory offset
returned here is actually a real offset - into an address space which is
the leaf blocks of the directory btree. In this case we only get into
problems with directories bigger than 2 Tbytes.... I cannot remember how
holes in the leaf blocks are handled, but it does do some tricks there too.
Steve
> Without stable name space probably your only option is to add dummy entries
> into the btree holes instead of rebalancing the tree, and removing all holes
> when the last entry goes away.
>
> -Andi
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next reply other threads:[~2000-08-30 12:06 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-08-30 12:06 Steve Lord [this message]
2000-08-30 15:07 ` Btree directories (Re: Status of HFS+ support) Andi Kleen
2000-08-30 16:07 ` flar
2000-08-30 20:49 ` David A. Gatwood
2000-08-30 20:45 ` Steve Lord
2000-08-30 21:05 ` Alexander Viro
2000-08-30 21:51 ` David A. Gatwood
2000-08-30 21:49 ` Alexander Viro
2000-08-30 22:13 ` David A. Gatwood
2000-08-30 22:17 ` Alexander Viro
2000-08-30 23:11 ` David A. Gatwood
2000-08-31 0:10 ` Alexander Viro
2000-08-31 5:49 ` flar
2000-08-31 10:33 ` Alexander Viro
2000-08-31 17:48 ` flar
2000-08-31 19:54 ` Alexander Viro
2000-08-31 22:09 ` flar
2000-09-01 2:40 ` Alexander Viro
2000-09-01 3:52 ` flar
2000-09-02 4:04 ` Tony Mantler
-- strict thread matches above, loose matches on Subject: below --
2000-09-01 17:05 Halfmann, Klaus
2000-09-01 17:40 ` flar
2000-08-29 16:40 Status of HFS+ support (was hfs support for blocksize != 512) Halfmann, Klaus
2000-08-29 17:18 ` Btree directories (Re: Status of HFS+ support) Matthew Wilcox
2000-08-29 18:45 ` Steve Lord
2000-08-29 21:25 ` Matthew Wilcox
2000-08-30 2:22 ` flar
2000-08-30 8:35 ` Andi Kleen
2000-08-30 14:25 ` Chris Mason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200008301206.HAA24978@jen.americas.sgi.com \
--to=lord@sgi.com \
--cc=ak@suse.de \
--cc=flar@allandria.com \
--cc=khalfmann@libra.de \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linuxppc-dev@lists.linuxppc.org \
--cc=matthew@wil.cx \
--cc=roman@augan.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).