[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: filesystem

----- Original Message ----- From: "Bodo Thiesen" <bothie gmx de>
To: <ext3-users redhat com>
Sent: Monday, August 25, 2014 8:15 PM
Subject: Re: filesystem
Hello Bill.

You're trying to understand what exactly? From the user point of view,
dir_index just makes directory accesses on very big directories faster.
When creating a new file, or searching a file to be opened, without
dir_index the file system driver has to read each any every directory
cluster and investigate it's content to figure out, whether an object with
the given name already exists. With dir_index, there is an additional form
of sorted tree in the directory, which speeds up this lookup process. Now,
when you remove that feature and then e2fsck, all those indexes will be
removed. If you later readd the feature and e2fsck, those indexes get

I see. Htree kept bieng mentioned. I am guessing that means "hash tree". I guess I would like to see all these filesystems, if possible, completely backwards reversibile. If you have ext2, simply add a journaling inode. It can be removed too.

Now with ext4, removing "extents" might present much more of a difficulty.

From the developer point of view, one approach is to read and understand
the kernel sources for ext2/3/4 or just start writing your own file system
checker. If you get that right, you've understood the file system ;)

Not much more advice, anyone can give you in a general way.

Features that separate ext2 / ext3 / ext4? Clear answer: There is no ext3
and ext4. It's all ext2, but there are three independent code bases in the
Linux kernel, called ext2, ext3 and ext4 - but they all implement ext2.

The fs driver called ext3 needs the feature has_journal, ext2 can't mount
feature needs_recovery. Despite from this, they are pretty much identical.

The fs driver called ext4 supports some new features, the prominent
(i.e. documented) ones are: extent (don't store cluster pointers but
instead cluster ranges - saving space for large files), flex_bg
(drop the constraint, that group meta data shall be stored in it's own
group, thus allowing to virtually create bigger groups. Probably you can
mke2fs one file system with flex_bg, then remove the feature flag and
perfecly mount and use it with ext2 / ext3, however, e2fsck may get cracy
on that setup - but I don't see, why the file system drivers should get a
problem with that - anyways, I didn't test it), uninit_bg (speeds up
mke2fs by skipping the "overwrite all bitmaps and inode tables with
zeros" step).

Regards, Bodo

Yes all those features. I would like to know what they mean. There are mount options, ext4 features, ext3 features and some are directly related to the journaling inode. I seem to remember something called revoke_incompatible or something like that. I've also seen ext3 with no features.

   Is there any docs or help for learning ext development?
One can not remove extents can thy. If I am correct they may cross multiple files. I have alot to learn. I'm glad this list is open to users. I guess anyway.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]