xfs: reshuffle dir2 definitions around for userspace
Many of the definitions within xfs_dir2_priv.h are needed in userspace outside libxfs. Definitions within xfs_dir2_priv.h are wholly contained within libxfs, so we need to shuffle some of the definitions around to keep consistency across files shared between user and kernel space. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Mark Tinguely <tinguely@sgi.com> Signed-off-by: Ben Myers <bpm@sgi.com>
This commit is contained in:
@@ -23,6 +23,11 @@ struct xfs_da_args;
|
||||
struct xfs_inode;
|
||||
struct xfs_mount;
|
||||
struct xfs_trans;
|
||||
struct xfs_dir2_sf_hdr;
|
||||
struct xfs_dir2_sf_entry;
|
||||
struct xfs_dir2_data_hdr;
|
||||
struct xfs_dir2_data_entry;
|
||||
struct xfs_dir2_data_unused;
|
||||
|
||||
extern struct xfs_name xfs_name_dotdot;
|
||||
|
||||
@@ -57,4 +62,50 @@ extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp,
|
||||
*/
|
||||
extern int xfs_dir2_sf_to_block(struct xfs_da_args *args);
|
||||
|
||||
/*
|
||||
* Direct call on directory open, before entering the readdir code.
|
||||
*/
|
||||
extern int xfs_dir3_data_readahead(struct xfs_trans *tp, struct xfs_inode *dp,
|
||||
xfs_dablk_t bno, xfs_daddr_t mapped_bno);
|
||||
|
||||
/*
|
||||
* Interface routines used by userspace utilities
|
||||
*/
|
||||
extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf_hdr *sfp);
|
||||
extern void xfs_dir2_sf_put_parent_ino(struct xfs_dir2_sf_hdr *sfp,
|
||||
xfs_ino_t ino);
|
||||
extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp,
|
||||
struct xfs_dir2_sf_entry *sfep);
|
||||
extern void xfs_dir2_sfe_put_ino( struct xfs_dir2_sf_hdr *,
|
||||
struct xfs_dir2_sf_entry *sfep, xfs_ino_t ino);
|
||||
|
||||
extern int xfs_dir2_isblock(struct xfs_trans *tp, struct xfs_inode *dp, int *r);
|
||||
extern int xfs_dir2_isleaf(struct xfs_trans *tp, struct xfs_inode *dp, int *r);
|
||||
extern int xfs_dir2_shrink_inode(struct xfs_da_args *args, xfs_dir2_db_t db,
|
||||
struct xfs_buf *bp);
|
||||
|
||||
extern void xfs_dir2_data_freescan(struct xfs_mount *mp,
|
||||
struct xfs_dir2_data_hdr *hdr, int *loghead);
|
||||
extern void xfs_dir2_data_log_entry(struct xfs_trans *tp, struct xfs_buf *bp,
|
||||
struct xfs_dir2_data_entry *dep);
|
||||
extern void xfs_dir2_data_log_header(struct xfs_trans *tp,
|
||||
struct xfs_buf *bp);
|
||||
extern void xfs_dir2_data_log_unused(struct xfs_trans *tp, struct xfs_buf *bp,
|
||||
struct xfs_dir2_data_unused *dup);
|
||||
extern void xfs_dir2_data_make_free(struct xfs_trans *tp, struct xfs_buf *bp,
|
||||
xfs_dir2_data_aoff_t offset, xfs_dir2_data_aoff_t len,
|
||||
int *needlogp, int *needscanp);
|
||||
extern void xfs_dir2_data_use_free(struct xfs_trans *tp, struct xfs_buf *bp,
|
||||
struct xfs_dir2_data_unused *dup, xfs_dir2_data_aoff_t offset,
|
||||
xfs_dir2_data_aoff_t len, int *needlogp, int *needscanp);
|
||||
|
||||
extern struct xfs_dir2_data_free *xfs_dir2_data_freefind(
|
||||
struct xfs_dir2_data_hdr *hdr, struct xfs_dir2_data_unused *dup);
|
||||
|
||||
extern const struct xfs_buf_ops xfs_dir3_block_buf_ops;
|
||||
extern const struct xfs_buf_ops xfs_dir3_leafn_buf_ops;
|
||||
extern const struct xfs_buf_ops xfs_dir3_leaf1_buf_ops;
|
||||
extern const struct xfs_buf_ops xfs_dir3_free_buf_ops;
|
||||
extern const struct xfs_buf_ops xfs_dir3_data_buf_ops;
|
||||
|
||||
#endif /* __XFS_DIR2_H__ */
|
||||
|
Reference in New Issue
Block a user