diff options
Diffstat (limited to 'fs/ocfs2/dir.h')
-rw-r--r-- | fs/ocfs2/dir.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/fs/ocfs2/dir.h b/fs/ocfs2/dir.h index 505d3af9bba5..d273aaef2ec2 100644 --- a/fs/ocfs2/dir.h +++ b/fs/ocfs2/dir.h @@ -26,9 +26,21 @@ #ifndef OCFS2_DIR_H #define OCFS2_DIR_H +struct ocfs2_dx_hinfo { + u32 major_hash; + u32 minor_hash; +}; + struct ocfs2_dir_lookup_result { - struct buffer_head *dl_leaf_bh; - struct ocfs2_dir_entry *dl_entry; + struct buffer_head *dl_leaf_bh; /* Unindexed leaf + * block */ + struct ocfs2_dir_entry *dl_entry; /* Target dirent in + * unindexed leaf */ + + struct buffer_head *dl_dx_leaf_bh; /* Indexed leaf block */ + struct ocfs2_dx_entry *dl_dx_entry; /* Target dx_entry in + * indexed leaf */ + struct ocfs2_dx_hinfo dl_hinfo; /* Name hash results */ }; void ocfs2_free_dir_lookup_result(struct ocfs2_dir_lookup_result *res); @@ -85,7 +97,10 @@ int ocfs2_fill_new_dir(struct ocfs2_super *osb, struct inode *parent, struct inode *inode, struct buffer_head *fe_bh, - struct ocfs2_alloc_context *data_ac); + struct ocfs2_alloc_context *data_ac, + struct ocfs2_alloc_context *meta_ac); + +int ocfs2_dx_dir_truncate(struct inode *dir, struct buffer_head *di_bh); struct ocfs2_dir_block_trailer *ocfs2_dir_trailer_from_size(int blocksize, void *data); |