mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-06-01 19:54:10 +03:00
Fix volume WR_INDIRECT log replay (#6620)
The portion of the zvol_replay_write() handler responsible for replaying indirect log records for some reason never existed. As a result indirect log records were not being correctly replayed. This went largely unnoticed since the majority of zvol log records were of the type WR_COPIED or WR_NEED_COPY prior to OpenZFS 7578. This patch updates zvol_replay_write() to correctly handle these log records and adds a new test case which verifies volume replay to prevent any regression. The existing test case which verified replay on filesystem was renamed slog_replay_fs.ksh for clarity. Reviewed-by: George Melikov <mail@gmelikov.ru> Reviewed-by: loli10K <ezomori.nozomu@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #6603
This commit is contained in:
committed by
Tony Hutter
parent
45d1abc74d
commit
a2a0440918
@@ -33,7 +33,7 @@
|
||||
. $STF_SUITE/tests/functional/cli_root/zfs_copies/zfs_copies.cfg
|
||||
|
||||
#
|
||||
# umount the ufs|ext2 fs if there is timedout in the ufs|ext2 test
|
||||
# umount the ufs|ext fs if there is timedout in the ufs|ext test
|
||||
#
|
||||
|
||||
if ismounted $FS_MNTPOINT $NEWFS_DEFAULT_FS ; then
|
||||
|
||||
@@ -73,7 +73,7 @@ function setup_snap_env
|
||||
[[ $type == 'volume' ]]; then
|
||||
#
|
||||
# At the first time, Make a UFS file system in volume and
|
||||
# mount it. Otherwise, only check if this ufs|ext2 file system
|
||||
# mount it. Otherwise, only check if this ufs|ext file system
|
||||
# was mounted.
|
||||
#
|
||||
log_must eval "echo "y" | \
|
||||
@@ -81,8 +81,8 @@ function setup_snap_env
|
||||
|
||||
[[ ! -d $TESTDIR1 ]] && log_must mkdir $TESTDIR1
|
||||
|
||||
# Make sure the ufs|ext2 filesystem hasn't been mounted,
|
||||
# then mount the new ufs|ext2 filesystem.
|
||||
# Make sure the ufs|ext filesystem hasn't been mounted,
|
||||
# then mount the new ufs|ext filesystem.
|
||||
if ! ismounted $TESTDIR1 $NEWFS_DEFAULT_FS; then
|
||||
log_must mount \
|
||||
$ZVOL_DEVDIR/$TESTPOOL/$TESTVOL $TESTDIR1
|
||||
|
||||
@@ -53,11 +53,11 @@ function create_pool_test
|
||||
}
|
||||
|
||||
#
|
||||
# Create a ufs|ext2 file system and make a file within the file
|
||||
# Create a ufs|ext file system and make a file within the file
|
||||
# system for storage pool vdev
|
||||
# $1, file size
|
||||
# $2, file name
|
||||
# $3, disk name to create ufs|ext2 file system
|
||||
# $3, disk name to create ufs|ext file system
|
||||
#
|
||||
function create_blockfile
|
||||
{
|
||||
@@ -83,7 +83,7 @@ function create_blockfile
|
||||
}
|
||||
|
||||
#
|
||||
# Umount the ext2|ufs filesystem and remove the mountpoint
|
||||
# Umount the ufs|ext filesystem and remove the mountpoint
|
||||
# $1, the mount point
|
||||
#
|
||||
function clean_blockfile
|
||||
|
||||
Reference in New Issue
Block a user