diff options
author | Xiao Yang <yangx.jy@fujitsu.com> | 2022-11-14 08:35:02 +0000 |
---|---|---|
committer | Zorro Lang <zlang@kernel.org> | 2022-11-23 11:55:03 +0800 |
commit | da2e198c3fa536012c2f8cb8e3741c46605ae01b (patch) | |
tree | 20713ad161353e37f134d1eaf81be17ded0815c3 /common/dmlogwrites | |
parent | d6deed033681643118cbeea0bc8841f2ee5327f1 (diff) |
common/dmlogwrites: Extend _log_writes_init() to accept the specified length
It is unnecssary to always create a dm-log-writes device
based on the entire size of the target/underlying device.
Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Zorro Lang <zlang@kernel.org>
Diffstat (limited to 'common/dmlogwrites')
-rw-r--r-- | common/dmlogwrites | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/common/dmlogwrites b/common/dmlogwrites index 9fa1c977..c1c85de9 100644 --- a/common/dmlogwrites +++ b/common/dmlogwrites @@ -59,14 +59,28 @@ _require_log_writes_dax_mountopt() fi } +# Set up a dm-log-writes device +# +# blkdev: the specified target device +# length(optional): the mapped length in bytes +# Note that the entire size of the target device will be used +# if length is not specified. _log_writes_init() { - blkdev=$1 + local blkdev=$1 + local length=$2 + local BLK_DEV_SIZE [ -z "$blkdev" ] && _fail \ "block dev must be specified for _log_writes_init" - local BLK_DEV_SIZE=`blockdev --getsz $blkdev` + if [ -z "$length" ]; then + BLK_DEV_SIZE=`blockdev --getsz $blkdev` + else + local blksz=`blockdev --getss $blkdev` + BLK_DEV_SIZE=$((length / blksz)) + fi + LOGWRITES_NAME=logwrites-test LOGWRITES_DMDEV=/dev/mapper/$LOGWRITES_NAME LOGWRITES_TABLE="0 $BLK_DEV_SIZE log-writes $blkdev $LOGWRITES_DEV" |