2013-08-26 15:55:20

by Subranshu Patel

[permalink] [raw]
Subject: Block allocation in EXT4

In EXT4 it seems that both direct/indirect and extent tree based
block allocation is used. I used debugfs and it seems that the root
inode uses the direct/indirect block allocation. The other files and
direcyories used extent based allocation.

Do all the EXT4 reserved inode (0 -11) use the direct/indirect
allocation scheme?


Subject: Re: Block allocation in EXT4

Hello,

I'm no expert, but I think that you should read i_node.i_flags and
check it for the flag EXT4_EXTENTS_FL to determine which inodes use
the old or the new (extents) method of allocation.

I'm not sure what your objective is, so hopefully this helps something =)

--
Felipe Monteiro de Carvalho

2013-08-26 17:54:34

by Eric Sandeen

[permalink] [raw]
Subject: Re: Block allocation in EXT4

On 8/26/13 10:55 AM, Subranshu Patel wrote:
> In EXT4 it seems that both direct/indirect and extent tree based
> block allocation is used. I used debugfs and it seems that the root
> inode uses the direct/indirect block allocation. The other files and
> direcyories used extent based allocation.
>
> Do all the EXT4 reserved inode (0 -11) use the direct/indirect
> allocation scheme?

Nope; looks like a leftover oddity from old mkfs.

mkfs-time created dirs weren't created w/ the extents flag until:

commit 1afb468b9a80031b39eab37272709f45727fb221
Author: Theodore Ts'o <[email protected]>
Date: Fri Jun 10 13:58:18 2011 -0400

libext2fs: create extent-based directories if the extents feature is enabled

This allows mke2fs to create the root and lost+found directories using
extents.

Signed-off-by: "Theodore Ts'o" <[email protected]>

so newly mkfs'd filesystems w/ newer e2fsprogs shouldn't exhibit
what you see.

-Eric