xfs: merge xfs_buf_zero and xfs_buf_iomove
xfs_buf_zero is the only caller of xfs_buf_iomove. Remove support for copying from or to the buffer in xfs_buf_iomove and merge the two functions. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Родитель
8c9ce2f707
Коммит
f9a196ee5a
|
@ -1613,16 +1613,11 @@ xfs_buf_offset(
|
|||
return page_address(page) + (offset & (PAGE_SIZE-1));
|
||||
}
|
||||
|
||||
/*
|
||||
* Move data into or out of a buffer.
|
||||
*/
|
||||
void
|
||||
xfs_buf_iomove(
|
||||
xfs_buf_t *bp, /* buffer to process */
|
||||
size_t boff, /* starting buffer offset */
|
||||
size_t bsize, /* length to copy */
|
||||
void *data, /* data address */
|
||||
xfs_buf_rw_t mode) /* read/write/zero flag */
|
||||
xfs_buf_zero(
|
||||
struct xfs_buf *bp,
|
||||
size_t boff,
|
||||
size_t bsize)
|
||||
{
|
||||
size_t bend;
|
||||
|
||||
|
@ -1639,19 +1634,9 @@ xfs_buf_iomove(
|
|||
|
||||
ASSERT((csize + page_offset) <= PAGE_SIZE);
|
||||
|
||||
switch (mode) {
|
||||
case XBRW_ZERO:
|
||||
memset(page_address(page) + page_offset, 0, csize);
|
||||
break;
|
||||
case XBRW_READ:
|
||||
memcpy(data, page_address(page) + page_offset, csize);
|
||||
break;
|
||||
case XBRW_WRITE:
|
||||
memcpy(page_address(page) + page_offset, data, csize);
|
||||
}
|
||||
memset(page_address(page) + page_offset, 0, csize);
|
||||
|
||||
boff += csize;
|
||||
data += csize;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,12 +21,6 @@
|
|||
|
||||
#define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL))
|
||||
|
||||
typedef enum {
|
||||
XBRW_READ = 1, /* transfer into target memory */
|
||||
XBRW_WRITE = 2, /* transfer from target memory */
|
||||
XBRW_ZERO = 3, /* Zero target memory */
|
||||
} xfs_buf_rw_t;
|
||||
|
||||
#define XBF_READ (1 << 0) /* buffer intended for reading from device */
|
||||
#define XBF_WRITE (1 << 1) /* buffer intended for writing to device */
|
||||
#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */
|
||||
|
@ -305,10 +299,7 @@ static inline int xfs_buf_submit(struct xfs_buf *bp)
|
|||
return __xfs_buf_submit(bp, wait);
|
||||
}
|
||||
|
||||
extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *,
|
||||
xfs_buf_rw_t);
|
||||
#define xfs_buf_zero(bp, off, len) \
|
||||
xfs_buf_iomove((bp), (off), (len), NULL, XBRW_ZERO)
|
||||
void xfs_buf_zero(struct xfs_buf *bp, size_t boff, size_t bsize);
|
||||
|
||||
/* Buffer Utility Routines */
|
||||
extern void *xfs_buf_offset(struct xfs_buf *, size_t);
|
||||
|
|
Загрузка…
Ссылка в новой задаче