mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Update zfs_destroy_004.ksh script
Issues: Under Linux, when executing zfs_destroy_004.ksh destroy $fs is an error. The key issue here is that illumos kernel treats this case differently than the Linux kernel. On illumos you can unmount and destroy a filesystem which is busy and all consumers of it get EIO. On Linux the expected behavior is to prevent the unmount and destroy. Cause analysis: When create $fs file system and mount file system to $mntp. cd $mntp, linux isn't allow to destroy $fs in this mount contents. No matter what destroy with parameters. Solution: So log_mustnot $ZFS destroy $fs is ok. cd $olddir and destroy $fs. Signed-off-by: caoxuewen cao.xuewen@zte.com.cn Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #5012
This commit is contained in:
parent
43cb1c1212
commit
8fe453b671
@ -96,7 +96,6 @@ tests = ['zfs_create_001_pos', 'zfs_create_002_pos', 'zfs_create_003_pos',
|
|||||||
|
|
||||||
# DISABLED:
|
# DISABLED:
|
||||||
# zfs_destroy_001_pos - busy mountpoint behavior
|
# zfs_destroy_001_pos - busy mountpoint behavior
|
||||||
# zfs_destroy_004_pos - busy mountpoint behavior
|
|
||||||
# zfs_destroy_005_neg - busy mountpoint behavior
|
# zfs_destroy_005_neg - busy mountpoint behavior
|
||||||
# zfs_destroy_008_pos - busy mountpoint behavior
|
# zfs_destroy_008_pos - busy mountpoint behavior
|
||||||
# zfs_destroy_009_pos - busy mountpoint behavior
|
# zfs_destroy_009_pos - busy mountpoint behavior
|
||||||
@ -105,9 +104,9 @@ tests = ['zfs_create_001_pos', 'zfs_create_002_pos', 'zfs_create_003_pos',
|
|||||||
# zfs_destroy_012_pos - busy mountpoint behavior
|
# zfs_destroy_012_pos - busy mountpoint behavior
|
||||||
# zfs_destroy_013_neg - busy mountpoint behavior
|
# zfs_destroy_013_neg - busy mountpoint behavior
|
||||||
[tests/functional/cli_root/zfs_destroy]
|
[tests/functional/cli_root/zfs_destroy]
|
||||||
tests = ['zfs_destroy_002_pos', 'zfs_destroy_003_pos', 'zfs_destroy_006_neg',
|
tests = ['zfs_destroy_002_pos', 'zfs_destroy_003_pos', 'zfs_destroy_004_pos',
|
||||||
'zfs_destroy_007_neg', 'zfs_destroy_014_pos', 'zfs_destroy_015_pos',
|
'zfs_destroy_006_neg', 'zfs_destroy_007_neg', 'zfs_destroy_014_pos',
|
||||||
'zfs_destroy_016_pos']
|
'zfs_destroy_015_pos', 'zfs_destroy_016_pos']
|
||||||
|
|
||||||
# DISABLED:
|
# DISABLED:
|
||||||
# zfs_get_004_pos - nested pools
|
# zfs_get_004_pos - nested pools
|
||||||
|
@ -110,9 +110,15 @@ for arg in "$fs1 $mntp1" "$clone $mntp2"; do
|
|||||||
cd $mntp
|
cd $mntp
|
||||||
log_mustnot $ZFS destroy $fs
|
log_mustnot $ZFS destroy $fs
|
||||||
|
|
||||||
log_must $ZFS destroy -f $fs
|
if is_linux; then
|
||||||
datasetexists $fs && \
|
log_mustnot $ZFS destroy -f $fs
|
||||||
log_fail "'zfs destroy -f' fails to destroy busy filesystem."
|
datasetnonexists $fs && \
|
||||||
|
log_fail "'zfs destroy -f' destroyed busy filesystem."
|
||||||
|
else
|
||||||
|
log_must $ZFS destroy -f $fs
|
||||||
|
datasetexists $fs && \
|
||||||
|
log_fail "'zfs destroy -f' fail to destroy busy filesystem."
|
||||||
|
fi
|
||||||
|
|
||||||
cd $olddir
|
cd $olddir
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user