Commit 26788097 authored by Darrick J. Wong's avatar Darrick J. Wong

xfs: export various function for the online scrubber

Export various internal functions so that the online scrubber can use
them to check the state of metadata.
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarBrian Foster <bfoster@redhat.com>
parent 38dee376
...@@ -606,7 +606,7 @@ const struct xfs_buf_ops xfs_agfl_buf_ops = { ...@@ -606,7 +606,7 @@ const struct xfs_buf_ops xfs_agfl_buf_ops = {
/* /*
* Read in the allocation group free block array. * Read in the allocation group free block array.
*/ */
STATIC int /* error */ int /* error */
xfs_alloc_read_agfl( xfs_alloc_read_agfl(
xfs_mount_t *mp, /* mount point structure */ xfs_mount_t *mp, /* mount point structure */
xfs_trans_t *tp, /* transaction pointer */ xfs_trans_t *tp, /* transaction pointer */
......
...@@ -213,6 +213,8 @@ xfs_alloc_get_rec( ...@@ -213,6 +213,8 @@ xfs_alloc_get_rec(
int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp,
xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); xfs_agnumber_t agno, int flags, struct xfs_buf **bpp);
int xfs_alloc_read_agfl(struct xfs_mount *mp, struct xfs_trans *tp,
xfs_agnumber_t agno, struct xfs_buf **bpp);
int xfs_alloc_fix_freelist(struct xfs_alloc_arg *args, int flags); int xfs_alloc_fix_freelist(struct xfs_alloc_arg *args, int flags);
int xfs_free_extent_fix_freelist(struct xfs_trans *tp, xfs_agnumber_t agno, int xfs_free_extent_fix_freelist(struct xfs_trans *tp, xfs_agnumber_t agno,
struct xfs_buf **agbp); struct xfs_buf **agbp);
......
...@@ -568,7 +568,7 @@ xfs_btree_ptr_offset( ...@@ -568,7 +568,7 @@ xfs_btree_ptr_offset(
/* /*
* Return a pointer to the n-th record in the btree block. * Return a pointer to the n-th record in the btree block.
*/ */
STATIC union xfs_btree_rec * union xfs_btree_rec *
xfs_btree_rec_addr( xfs_btree_rec_addr(
struct xfs_btree_cur *cur, struct xfs_btree_cur *cur,
int n, int n,
...@@ -581,7 +581,7 @@ xfs_btree_rec_addr( ...@@ -581,7 +581,7 @@ xfs_btree_rec_addr(
/* /*
* Return a pointer to the n-th key in the btree block. * Return a pointer to the n-th key in the btree block.
*/ */
STATIC union xfs_btree_key * union xfs_btree_key *
xfs_btree_key_addr( xfs_btree_key_addr(
struct xfs_btree_cur *cur, struct xfs_btree_cur *cur,
int n, int n,
...@@ -594,7 +594,7 @@ xfs_btree_key_addr( ...@@ -594,7 +594,7 @@ xfs_btree_key_addr(
/* /*
* Return a pointer to the n-th high key in the btree block. * Return a pointer to the n-th high key in the btree block.
*/ */
STATIC union xfs_btree_key * union xfs_btree_key *
xfs_btree_high_key_addr( xfs_btree_high_key_addr(
struct xfs_btree_cur *cur, struct xfs_btree_cur *cur,
int n, int n,
...@@ -607,7 +607,7 @@ xfs_btree_high_key_addr( ...@@ -607,7 +607,7 @@ xfs_btree_high_key_addr(
/* /*
* Return a pointer to the n-th block pointer in the btree block. * Return a pointer to the n-th block pointer in the btree block.
*/ */
STATIC union xfs_btree_ptr * union xfs_btree_ptr *
xfs_btree_ptr_addr( xfs_btree_ptr_addr(
struct xfs_btree_cur *cur, struct xfs_btree_cur *cur,
int n, int n,
...@@ -641,7 +641,7 @@ xfs_btree_get_iroot( ...@@ -641,7 +641,7 @@ xfs_btree_get_iroot(
* Retrieve the block pointer from the cursor at the given level. * Retrieve the block pointer from the cursor at the given level.
* This may be an inode btree root or from a buffer. * This may be an inode btree root or from a buffer.
*/ */
STATIC struct xfs_btree_block * /* generic btree block pointer */ struct xfs_btree_block * /* generic btree block pointer */
xfs_btree_get_block( xfs_btree_get_block(
struct xfs_btree_cur *cur, /* btree cursor */ struct xfs_btree_cur *cur, /* btree cursor */
int level, /* level in btree */ int level, /* level in btree */
...@@ -1756,7 +1756,7 @@ xfs_btree_decrement( ...@@ -1756,7 +1756,7 @@ xfs_btree_decrement(
return error; return error;
} }
STATIC int int
xfs_btree_lookup_get_block( xfs_btree_lookup_get_block(
struct xfs_btree_cur *cur, /* btree cursor */ struct xfs_btree_cur *cur, /* btree cursor */
int level, /* level in the btree */ int level, /* level in the btree */
......
...@@ -504,4 +504,17 @@ int xfs_btree_visit_blocks(struct xfs_btree_cur *cur, ...@@ -504,4 +504,17 @@ int xfs_btree_visit_blocks(struct xfs_btree_cur *cur,
int xfs_btree_count_blocks(struct xfs_btree_cur *cur, xfs_extlen_t *blocks); int xfs_btree_count_blocks(struct xfs_btree_cur *cur, xfs_extlen_t *blocks);
union xfs_btree_rec *xfs_btree_rec_addr(struct xfs_btree_cur *cur, int n,
struct xfs_btree_block *block);
union xfs_btree_key *xfs_btree_key_addr(struct xfs_btree_cur *cur, int n,
struct xfs_btree_block *block);
union xfs_btree_key *xfs_btree_high_key_addr(struct xfs_btree_cur *cur, int n,
struct xfs_btree_block *block);
union xfs_btree_ptr *xfs_btree_ptr_addr(struct xfs_btree_cur *cur, int n,
struct xfs_btree_block *block);
int xfs_btree_lookup_get_block(struct xfs_btree_cur *cur, int level,
union xfs_btree_ptr *pp, struct xfs_btree_block **blkp);
struct xfs_btree_block *xfs_btree_get_block(struct xfs_btree_cur *cur,
int level, struct xfs_buf **bpp);
#endif /* __XFS_BTREE_H__ */ #endif /* __XFS_BTREE_H__ */
...@@ -256,7 +256,7 @@ const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = { ...@@ -256,7 +256,7 @@ const struct xfs_buf_ops xfs_dir3_leafn_buf_ops = {
.verify_write = xfs_dir3_leafn_write_verify, .verify_write = xfs_dir3_leafn_write_verify,
}; };
static int int
xfs_dir3_leaf_read( xfs_dir3_leaf_read(
struct xfs_trans *tp, struct xfs_trans *tp,
struct xfs_inode *dp, struct xfs_inode *dp,
......
...@@ -58,6 +58,8 @@ extern int xfs_dir3_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno, ...@@ -58,6 +58,8 @@ extern int xfs_dir3_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno,
struct xfs_buf **bpp); struct xfs_buf **bpp);
/* xfs_dir2_leaf.c */ /* xfs_dir2_leaf.c */
extern int xfs_dir3_leaf_read(struct xfs_trans *tp, struct xfs_inode *dp,
xfs_dablk_t fbno, xfs_daddr_t mappedbno, struct xfs_buf **bpp);
extern int xfs_dir3_leafn_read(struct xfs_trans *tp, struct xfs_inode *dp, extern int xfs_dir3_leafn_read(struct xfs_trans *tp, struct xfs_inode *dp,
xfs_dablk_t fbno, xfs_daddr_t mappedbno, struct xfs_buf **bpp); xfs_dablk_t fbno, xfs_daddr_t mappedbno, struct xfs_buf **bpp);
extern int xfs_dir2_block_to_leaf(struct xfs_da_args *args, extern int xfs_dir2_block_to_leaf(struct xfs_da_args *args,
......
...@@ -381,7 +381,7 @@ xfs_log_dinode_to_disk( ...@@ -381,7 +381,7 @@ xfs_log_dinode_to_disk(
} }
} }
static bool bool
xfs_dinode_verify( xfs_dinode_verify(
struct xfs_mount *mp, struct xfs_mount *mp,
xfs_ino_t ino, xfs_ino_t ino,
......
...@@ -82,4 +82,7 @@ void xfs_inobp_check(struct xfs_mount *, struct xfs_buf *); ...@@ -82,4 +82,7 @@ void xfs_inobp_check(struct xfs_mount *, struct xfs_buf *);
#define xfs_inobp_check(mp, bp) #define xfs_inobp_check(mp, bp)
#endif /* DEBUG */ #endif /* DEBUG */
bool xfs_dinode_verify(struct xfs_mount *mp, xfs_ino_t ino,
struct xfs_dinode *dip);
#endif /* __XFS_INODE_BUF_H__ */ #endif /* __XFS_INODE_BUF_H__ */
...@@ -179,7 +179,8 @@ xfs_rmap_delete( ...@@ -179,7 +179,8 @@ xfs_rmap_delete(
return error; return error;
} }
static int /* Convert an internal btree record to an rmap record. */
int
xfs_rmap_btrec_to_irec( xfs_rmap_btrec_to_irec(
union xfs_btree_rec *rec, union xfs_btree_rec *rec,
struct xfs_rmap_irec *irec) struct xfs_rmap_irec *irec)
......
...@@ -216,5 +216,8 @@ int xfs_rmap_lookup_le_range(struct xfs_btree_cur *cur, xfs_agblock_t bno, ...@@ -216,5 +216,8 @@ int xfs_rmap_lookup_le_range(struct xfs_btree_cur *cur, xfs_agblock_t bno,
struct xfs_rmap_irec *irec, int *stat); struct xfs_rmap_irec *irec, int *stat);
int xfs_rmap_compare(const struct xfs_rmap_irec *a, int xfs_rmap_compare(const struct xfs_rmap_irec *a,
const struct xfs_rmap_irec *b); const struct xfs_rmap_irec *b);
union xfs_btree_rec;
int xfs_rmap_btrec_to_irec(union xfs_btree_rec *rec,
struct xfs_rmap_irec *irec);
#endif /* __XFS_RMAP_H__ */ #endif /* __XFS_RMAP_H__ */
...@@ -70,7 +70,7 @@ const struct xfs_buf_ops xfs_rtbuf_ops = { ...@@ -70,7 +70,7 @@ const struct xfs_buf_ops xfs_rtbuf_ops = {
* Get a buffer for the bitmap or summary file block specified. * Get a buffer for the bitmap or summary file block specified.
* The buffer is returned read and locked. * The buffer is returned read and locked.
*/ */
static int int
xfs_rtbuf_get( xfs_rtbuf_get(
xfs_mount_t *mp, /* file system mount structure */ xfs_mount_t *mp, /* file system mount structure */
xfs_trans_t *tp, /* transaction pointer */ xfs_trans_t *tp, /* transaction pointer */
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
#include "xfs_trace.h" #include "xfs_trace.h"
#include "xfs_icache.h" #include "xfs_icache.h"
STATIC int int
xfs_internal_inum( xfs_internal_inum(
xfs_mount_t *mp, xfs_mount_t *mp,
xfs_ino_t ino) xfs_ino_t ino)
......
...@@ -96,4 +96,6 @@ xfs_inumbers( ...@@ -96,4 +96,6 @@ xfs_inumbers(
void __user *buffer, /* buffer with inode info */ void __user *buffer, /* buffer with inode info */
inumbers_fmt_pf formatter); inumbers_fmt_pf formatter);
int xfs_internal_inum(struct xfs_mount *mp, xfs_ino_t ino);
#endif /* __XFS_ITABLE_H__ */ #endif /* __XFS_ITABLE_H__ */
...@@ -107,6 +107,8 @@ xfs_growfs_rt( ...@@ -107,6 +107,8 @@ xfs_growfs_rt(
/* /*
* From xfs_rtbitmap.c * From xfs_rtbitmap.c
*/ */
int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp,
xfs_rtblock_t block, int issum, struct xfs_buf **bpp);
int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp, int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
xfs_rtblock_t start, xfs_extlen_t len, int val, xfs_rtblock_t start, xfs_extlen_t len, int val,
xfs_rtblock_t *new, int *stat); xfs_rtblock_t *new, int *stat);
...@@ -143,6 +145,7 @@ int xfs_rtalloc_query_all(struct xfs_trans *tp, ...@@ -143,6 +145,7 @@ int xfs_rtalloc_query_all(struct xfs_trans *tp,
# define xfs_growfs_rt(mp,in) (ENOSYS) # define xfs_growfs_rt(mp,in) (ENOSYS)
# define xfs_rtalloc_query_range(t,l,h,f,p) (ENOSYS) # define xfs_rtalloc_query_range(t,l,h,f,p) (ENOSYS)
# define xfs_rtalloc_query_all(t,f,p) (ENOSYS) # define xfs_rtalloc_query_all(t,f,p) (ENOSYS)
# define xfs_rtbuf_get(m,t,b,i,p) (ENOSYS)
static inline int /* error */ static inline int /* error */
xfs_rtmount_init( xfs_rtmount_init(
xfs_mount_t *mp) /* file system mount structure */ xfs_mount_t *mp) /* file system mount structure */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment