|
@@ -100,6 +100,7 @@ typedef struct xfs_buftarg {
|
|
struct xfs_buf;
|
|
struct xfs_buf;
|
|
typedef void (*xfs_buf_iodone_t)(struct xfs_buf *);
|
|
typedef void (*xfs_buf_iodone_t)(struct xfs_buf *);
|
|
|
|
|
|
|
|
+
|
|
#define XB_PAGES 2
|
|
#define XB_PAGES 2
|
|
|
|
|
|
struct xfs_buf_map {
|
|
struct xfs_buf_map {
|
|
@@ -159,7 +160,6 @@ typedef struct xfs_buf {
|
|
#endif
|
|
#endif
|
|
} xfs_buf_t;
|
|
} xfs_buf_t;
|
|
|
|
|
|
-
|
|
|
|
/* Finding and Reading Buffers */
|
|
/* Finding and Reading Buffers */
|
|
struct xfs_buf *_xfs_buf_find(struct xfs_buftarg *target,
|
|
struct xfs_buf *_xfs_buf_find(struct xfs_buftarg *target,
|
|
struct xfs_buf_map *map, int nmaps,
|
|
struct xfs_buf_map *map, int nmaps,
|
|
@@ -196,9 +196,10 @@ struct xfs_buf *xfs_buf_get_map(struct xfs_buftarg *target,
|
|
xfs_buf_flags_t flags);
|
|
xfs_buf_flags_t flags);
|
|
struct xfs_buf *xfs_buf_read_map(struct xfs_buftarg *target,
|
|
struct xfs_buf *xfs_buf_read_map(struct xfs_buftarg *target,
|
|
struct xfs_buf_map *map, int nmaps,
|
|
struct xfs_buf_map *map, int nmaps,
|
|
- xfs_buf_flags_t flags);
|
|
|
|
|
|
+ xfs_buf_flags_t flags, xfs_buf_iodone_t verify);
|
|
void xfs_buf_readahead_map(struct xfs_buftarg *target,
|
|
void xfs_buf_readahead_map(struct xfs_buftarg *target,
|
|
- struct xfs_buf_map *map, int nmaps);
|
|
|
|
|
|
+ struct xfs_buf_map *map, int nmaps,
|
|
|
|
+ xfs_buf_iodone_t verify);
|
|
|
|
|
|
static inline struct xfs_buf *
|
|
static inline struct xfs_buf *
|
|
xfs_buf_get(
|
|
xfs_buf_get(
|
|
@@ -216,20 +217,22 @@ xfs_buf_read(
|
|
struct xfs_buftarg *target,
|
|
struct xfs_buftarg *target,
|
|
xfs_daddr_t blkno,
|
|
xfs_daddr_t blkno,
|
|
size_t numblks,
|
|
size_t numblks,
|
|
- xfs_buf_flags_t flags)
|
|
|
|
|
|
+ xfs_buf_flags_t flags,
|
|
|
|
+ xfs_buf_iodone_t verify)
|
|
{
|
|
{
|
|
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
|
|
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
|
|
- return xfs_buf_read_map(target, &map, 1, flags);
|
|
|
|
|
|
+ return xfs_buf_read_map(target, &map, 1, flags, verify);
|
|
}
|
|
}
|
|
|
|
|
|
static inline void
|
|
static inline void
|
|
xfs_buf_readahead(
|
|
xfs_buf_readahead(
|
|
struct xfs_buftarg *target,
|
|
struct xfs_buftarg *target,
|
|
xfs_daddr_t blkno,
|
|
xfs_daddr_t blkno,
|
|
- size_t numblks)
|
|
|
|
|
|
+ size_t numblks,
|
|
|
|
+ xfs_buf_iodone_t verify)
|
|
{
|
|
{
|
|
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
|
|
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
|
|
- return xfs_buf_readahead_map(target, &map, 1);
|
|
|
|
|
|
+ return xfs_buf_readahead_map(target, &map, 1, verify);
|
|
}
|
|
}
|
|
|
|
|
|
struct xfs_buf *xfs_buf_get_empty(struct xfs_buftarg *target, size_t numblks);
|
|
struct xfs_buf *xfs_buf_get_empty(struct xfs_buftarg *target, size_t numblks);
|
|
@@ -239,7 +242,8 @@ int xfs_buf_associate_memory(struct xfs_buf *bp, void *mem, size_t length);
|
|
struct xfs_buf *xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks,
|
|
struct xfs_buf *xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks,
|
|
int flags);
|
|
int flags);
|
|
struct xfs_buf *xfs_buf_read_uncached(struct xfs_buftarg *target,
|
|
struct xfs_buf *xfs_buf_read_uncached(struct xfs_buftarg *target,
|
|
- xfs_daddr_t daddr, size_t numblks, int flags);
|
|
|
|
|
|
+ xfs_daddr_t daddr, size_t numblks, int flags,
|
|
|
|
+ xfs_buf_iodone_t verify);
|
|
void xfs_buf_hold(struct xfs_buf *bp);
|
|
void xfs_buf_hold(struct xfs_buf *bp);
|
|
|
|
|
|
/* Releasing Buffers */
|
|
/* Releasing Buffers */
|