* [PATCH v2 0/2] e2fsprogs: Adding itree feature/inode flags
@ 2013-05-13 15:43 Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 1/2] libext2fs: Adding itree feature and inode flags Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 2/2] mke2fs, tune2fs: Adding support for the itree flag Radek Pazdera
0 siblings, 2 replies; 3+ messages in thread
From: Radek Pazdera @ 2013-05-13 15:43 UTC (permalink / raw)
To: linux-ext4; +Cc: lczerner, kasparek, Radek Pazdera
Hi,
I created this very short series that adds the itree flags to e2fsprogs
mke2fs and tune2fs in case someone would like to try the itree patches.
A RFC patches were posted to linux-ext4 with this feature implemented,
however, it is still *highly* experimental. I am still working on it.
Changes from v1
===============
* The feature + inode flag patches merged together
* Added more detailed commit messages
-Radek
Radek Pazdera (2):
libext2fs: Adding itree feature and inode flags
mke2fs, tune2fs: Adding support for the itree flag
lib/e2p/feature.c | 2 ++
lib/e2p/pf.c | 1 +
lib/ext2fs/ext2_fs.h | 2 ++
misc/mke2fs.c | 3 ++-
misc/tune2fs.c | 6 ++++--
5 files changed, 11 insertions(+), 3 deletions(-)
--
1.7.7.6
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v2 1/2] libext2fs: Adding itree feature and inode flags
2013-05-13 15:43 [PATCH v2 0/2] e2fsprogs: Adding itree feature/inode flags Radek Pazdera
@ 2013-05-13 15:43 ` Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 2/2] mke2fs, tune2fs: Adding support for the itree flag Radek Pazdera
1 sibling, 0 replies; 3+ messages in thread
From: Radek Pazdera @ 2013-05-13 15:43 UTC (permalink / raw)
To: linux-ext4; +Cc: lczerner, kasparek, Radek Pazdera
The 'itree' feature adds an auxiliary tree that should help with indexing
directories. The tree resides on the file system along with the original
HTree (althought it is placed outside of the directory file).
It is a B+tree that contains directory entries sorted in inode order and
it is used to implement the getdents/readdir system calls. The inodes
are then returned in the optimal order, which improves the performance of
directory traversal.
This commit reserves a flag for the itree read-only compatible feature
and also an inode flag to indicate a directory has the inode tree
available.
Feature flag: EXT4_FEATURE_RO_COMPAT_ITREE 0x1000
Inode flag: EXT4_ITREE_FL 0x20000000
Signed-off-by: Radek Pazdera <rpazdera@redhat.com>
---
lib/e2p/feature.c | 2 ++
lib/e2p/pf.c | 1 +
lib/ext2fs/ext2_fs.h | 2 ++
3 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/lib/e2p/feature.c b/lib/e2p/feature.c
index 70815ef..9b15679 100644
--- a/lib/e2p/feature.c
+++ b/lib/e2p/feature.c
@@ -66,6 +66,8 @@ static struct feature feature_list[] = {
"metadata_csum"},
{ E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_REPLICA,
"replica" },
+ { E2P_FEATURE_RO_INCOMPAT, EXT4_FEATURE_RO_COMPAT_ITREE,
+ "itree" },
{ E2P_FEATURE_INCOMPAT, EXT2_FEATURE_INCOMPAT_COMPRESSION,
"compression" },
diff --git a/lib/e2p/pf.c b/lib/e2p/pf.c
index f116ac3..c70b710 100644
--- a/lib/e2p/pf.c
+++ b/lib/e2p/pf.c
@@ -51,6 +51,7 @@ static struct flags_name flags_array[] = {
{ EXT4_HUGE_FILE_FL, "h", "Huge_file" },
{ FS_NOCOW_FL, "C", "No_COW" },
{ EXT4_INLINE_DATA_FL, "N", "Inline_Data" },
+ { EXT4_ITREE_FL, "r", "Has_Itree" },
{ 0, NULL, NULL }
};
diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h
index 0c0bbcb..7bdae5e 100644
--- a/lib/ext2fs/ext2_fs.h
+++ b/lib/ext2fs/ext2_fs.h
@@ -320,6 +320,7 @@ struct ext2_dx_tail {
#define EXT4_SNAPFILE_DELETED_FL 0x04000000 /* Snapshot is being deleted */
#define EXT4_SNAPFILE_SHRUNK_FL 0x08000000 /* Snapshot shrink has completed */
#define EXT4_INLINE_DATA_FL 0x10000000 /* Inode has inline data */
+#define EXT4_ITREE_FL 0x20000000 /* Directory has itree */
#define EXT2_RESERVED_FL 0x80000000 /* reserved for ext2 lib */
#define EXT2_FL_USER_VISIBLE 0x004BDFFF /* User visible flags */
@@ -739,6 +740,7 @@ struct ext2_super_block {
*/
#define EXT4_FEATURE_RO_COMPAT_METADATA_CSUM 0x0400
#define EXT4_FEATURE_RO_COMPAT_REPLICA 0x0800
+#define EXT4_FEATURE_RO_COMPAT_ITREE 0x1000
#define EXT2_FEATURE_INCOMPAT_COMPRESSION 0x0001
#define EXT2_FEATURE_INCOMPAT_FILETYPE 0x0002
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] mke2fs, tune2fs: Adding support for the itree flag
2013-05-13 15:43 [PATCH v2 0/2] e2fsprogs: Adding itree feature/inode flags Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 1/2] libext2fs: Adding itree feature and inode flags Radek Pazdera
@ 2013-05-13 15:43 ` Radek Pazdera
1 sibling, 0 replies; 3+ messages in thread
From: Radek Pazdera @ 2013-05-13 15:43 UTC (permalink / raw)
To: linux-ext4; +Cc: lczerner, kasparek, Radek Pazdera
This commit enables the itree feature flag for the mke2fs and tune2fs.
The 'itree' feature adds an auxiliary tree that should help with indexing
directories. The tree resides on the file system along with the original
HTree (althought it is placed outside of the directory file).
It is a B+tree that contains directory entries sorted in inode order and
it is used to implement the getdents/readdir system calls. The inodes
are then returned in the optimal order, which improves the performance of
directory traversal.
Signed-off-by: Radek Pazdera <rpazdera@redhat.com>
---
misc/mke2fs.c | 3 ++-
misc/tune2fs.c | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index 7ff759d..672bcde 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -914,7 +914,8 @@ static __u32 ok_features[3] = {
#ifdef CONFIG_QUOTA
EXT4_FEATURE_RO_COMPAT_QUOTA|
#endif
- EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
+ EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|
+ EXT4_FEATURE_RO_COMPAT_ITREE
};
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index 332aafd..a638d55 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -148,7 +148,8 @@ static __u32 ok_features[3] = {
#ifdef CONFIG_QUOTA
EXT4_FEATURE_RO_COMPAT_QUOTA |
#endif
- EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
+ EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|
+ EXT4_FEATURE_RO_COMPAT_ITREE
};
static __u32 clear_ok_features[3] = {
@@ -169,7 +170,8 @@ static __u32 clear_ok_features[3] = {
#ifdef CONFIG_QUOTA
EXT4_FEATURE_RO_COMPAT_QUOTA |
#endif
- EXT4_FEATURE_RO_COMPAT_METADATA_CSUM
+ EXT4_FEATURE_RO_COMPAT_METADATA_CSUM|
+ EXT4_FEATURE_RO_COMPAT_ITREE
};
/*
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-05-13 16:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-13 15:43 [PATCH v2 0/2] e2fsprogs: Adding itree feature/inode flags Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 1/2] libext2fs: Adding itree feature and inode flags Radek Pazdera
2013-05-13 15:43 ` [PATCH v2 2/2] mke2fs, tune2fs: Adding support for the itree flag Radek Pazdera
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).