projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xfs: convert buffer verifiers to an ops structure.
[deliverable/linux.git]
/
fs
/
xfs
/
xfs_buf.h
diff --git
a/fs/xfs/xfs_buf.h
b/fs/xfs/xfs_buf.h
index 51bc16a1cd9c7082456c8c2538531e86408ec6dd..23f5642480bb1ea5f0f8a42423c607e7d61e9b83 100644
(file)
--- a/
fs/xfs/xfs_buf.h
+++ b/
fs/xfs/xfs_buf.h
@@
-111,6
+111,11
@@
struct xfs_buf_map {
#define DEFINE_SINGLE_BUF_MAP(map, blkno, numblk) \
struct xfs_buf_map (map) = { .bm_bn = (blkno), .bm_len = (numblk) };
#define DEFINE_SINGLE_BUF_MAP(map, blkno, numblk) \
struct xfs_buf_map (map) = { .bm_bn = (blkno), .bm_len = (numblk) };
+struct xfs_buf_ops {
+ void (*verify_read)(struct xfs_buf *);
+ void (*verify_write)(struct xfs_buf *);
+};
+
typedef struct xfs_buf {
/*
* first cacheline holds all the fields needed for an uncontended cache
typedef struct xfs_buf {
/*
* first cacheline holds all the fields needed for an uncontended cache
@@
-154,9
+159,7
@@
typedef struct xfs_buf {
unsigned int b_page_count; /* size of page array */
unsigned int b_offset; /* page offset in first page */
unsigned short b_error; /* error code on I/O */
unsigned int b_page_count; /* size of page array */
unsigned int b_offset; /* page offset in first page */
unsigned short b_error; /* error code on I/O */
-
- void (*b_pre_io)(struct xfs_buf *);
- /* pre-io callback function */
+ const struct xfs_buf_ops *b_ops;
#ifdef XFS_BUF_LOCK_TRACKING
int b_last_holder;
#ifdef XFS_BUF_LOCK_TRACKING
int b_last_holder;
@@
-199,10
+202,11
@@
struct xfs_buf *xfs_buf_get_map(struct xfs_buftarg *target,
xfs_buf_flags_t flags);
struct xfs_buf *xfs_buf_read_map(struct xfs_buftarg *target,
struct xfs_buf_map *map, int nmaps,
xfs_buf_flags_t flags);
struct xfs_buf *xfs_buf_read_map(struct xfs_buftarg *target,
struct xfs_buf_map *map, int nmaps,
- xfs_buf_flags_t flags, xfs_buf_iodone_t verify);
+ xfs_buf_flags_t flags,
+ const struct xfs_buf_ops *ops);
void xfs_buf_readahead_map(struct xfs_buftarg *target,
struct xfs_buf_map *map, int nmaps,
void xfs_buf_readahead_map(struct xfs_buftarg *target,
struct xfs_buf_map *map, int nmaps,
-
xfs_buf_iodone_t verify
);
+
const struct xfs_buf_ops *ops
);
static inline struct xfs_buf *
xfs_buf_get(
static inline struct xfs_buf *
xfs_buf_get(
@@
-221,10
+225,10
@@
xfs_buf_read(
xfs_daddr_t blkno,
size_t numblks,
xfs_buf_flags_t flags,
xfs_daddr_t blkno,
size_t numblks,
xfs_buf_flags_t flags,
-
xfs_buf_iodone_t verify
)
+
const struct xfs_buf_ops *ops
)
{
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
{
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
- return xfs_buf_read_map(target, &map, 1, flags,
verify
);
+ return xfs_buf_read_map(target, &map, 1, flags,
ops
);
}
static inline void
}
static inline void
@@
-232,10
+236,10
@@
xfs_buf_readahead(
struct xfs_buftarg *target,
xfs_daddr_t blkno,
size_t numblks,
struct xfs_buftarg *target,
xfs_daddr_t blkno,
size_t numblks,
-
xfs_buf_iodone_t verify
)
+
const struct xfs_buf_ops *ops
)
{
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
{
DEFINE_SINGLE_BUF_MAP(map, blkno, numblks);
- return xfs_buf_readahead_map(target, &map, 1,
verify
);
+ return xfs_buf_readahead_map(target, &map, 1,
ops
);
}
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);
@@
-246,7
+250,7
@@
struct xfs_buf *xfs_buf_get_uncached(struct xfs_buftarg *target, size_t numblks,
int flags);
struct xfs_buf *xfs_buf_read_uncached(struct xfs_buftarg *target,
xfs_daddr_t daddr, size_t numblks, int flags,
int flags);
struct xfs_buf *xfs_buf_read_uncached(struct xfs_buftarg *target,
xfs_daddr_t daddr, size_t numblks, int flags,
-
xfs_buf_iodone_t verify
);
+
const struct xfs_buf_ops *ops
);
void xfs_buf_hold(struct xfs_buf *bp);
/* Releasing Buffers */
void xfs_buf_hold(struct xfs_buf *bp);
/* Releasing Buffers */
This page took
0.027844 seconds
and
5
git commands to generate.