OSDN Git Service

xfs: use bios directly to write log buffers
authorChristoph Hellwig <hch@lst.de>
Sat, 29 Jun 2019 02:27:25 +0000 (19:27 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Sat, 29 Jun 2019 02:27:25 +0000 (19:27 -0700)
commit79b54d9bfcdcd0a431bb3501013885f8f00cdb43
tree53073f8843202f5be0735fa7bd8dd6af3867b018
parent2d15d2c0e0f7ecd60bb9fa3b807b7f04314ffe82
xfs: use bios directly to write log buffers

Currently the XFS logging code uses the xfs_buf structure and
associated APIs to write the log buffers to disk.  This requires
various special cases in the log code and is generally not very
optimal.

Instead of using a buffer just allocate a kmem_alloc_larger region for
each log buffer, and use a bio and bio_vec array embedded in the iclog
structure to write the buffer to disk.  This also allows for using
the bio split and chaining case to deal with the case of a log
buffer wrapping around the end of the log.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
[darrick: don't split if/else with an #endif]
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_log.c
fs/xfs/xfs_log_priv.h