diff options
author | Mark Fasheh <mfasheh@suse.com> | 2009-02-17 18:29:35 -0500 |
---|---|---|
committer | Mark Fasheh <mfasheh@suse.com> | 2009-04-03 14:39:16 -0400 |
commit | e3a93c2db6410822aa24295c3874b44ba21730a8 (patch) | |
tree | 8de41a37abc6497745d07506a0fb5174da61d7c1 /fs/ocfs2/ocfs2_fs.h | |
parent | 198a1ca3b735986542c538e38b9499ffcaed7005 (diff) |
ocfs2: Add total entry count to dx_root_block
This little bit of extra accounting speeds up ocfs2_empty_dir()
dramatically by allowing us to short-circuit the full directory scan.
Signed-off-by: Mark Fasheh <mfasheh@suse.com>
Diffstat (limited to 'fs/ocfs2/ocfs2_fs.h')
-rw-r--r-- | fs/ocfs2/ocfs2_fs.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index 43da76eff9ae..f7a5201410c8 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h | |||
@@ -421,6 +421,7 @@ static struct ocfs2_system_inode_info ocfs2_system_inodes[NUM_SYSTEM_INODES] = { | |||
421 | #define OCFS2_LINK_MAX 32000 | 421 | #define OCFS2_LINK_MAX 32000 |
422 | #define OCFS2_DX_LINK_MAX ((1U << 31) - 1U) | 422 | #define OCFS2_DX_LINK_MAX ((1U << 31) - 1U) |
423 | #define OCFS2_LINKS_HI_SHIFT 16 | 423 | #define OCFS2_LINKS_HI_SHIFT 16 |
424 | #define OCFS2_DX_ENTRIES_MAX (0xffffffffU) | ||
424 | 425 | ||
425 | #define S_SHIFT 12 | 426 | #define S_SHIFT 12 |
426 | static unsigned char ocfs2_type_by_mode[S_IFMT >> S_SHIFT] = { | 427 | static unsigned char ocfs2_type_by_mode[S_IFMT >> S_SHIFT] = { |
@@ -844,7 +845,10 @@ struct ocfs2_dx_root_block { | |||
844 | __u8 dr_reserved0; | 845 | __u8 dr_reserved0; |
845 | __le16 dr_reserved1; | 846 | __le16 dr_reserved1; |
846 | __le64 dr_dir_blkno; /* Pointer to parent inode */ | 847 | __le64 dr_dir_blkno; /* Pointer to parent inode */ |
847 | __le64 dr_reserved2; | 848 | __le32 dr_num_entries; /* Total number of |
849 | * names stored in | ||
850 | * this directory.*/ | ||
851 | __le32 dr_reserved2; | ||
848 | __le64 dr_free_blk; /* Pointer to head of free | 852 | __le64 dr_free_blk; /* Pointer to head of free |
849 | * unindexed block list. */ | 853 | * unindexed block list. */ |
850 | __le64 dr_reserved3[15]; | 854 | __le64 dr_reserved3[15]; |