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:
|
||||
# zfs_destroy_001_pos - busy mountpoint behavior
|
||||
# zfs_destroy_004_pos - busy mountpoint behavior
|
||||
# zfs_destroy_005_neg - busy mountpoint behavior
|
||||
# zfs_destroy_008_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_013_neg - busy mountpoint behavior
|
||||
[tests/functional/cli_root/zfs_destroy]
|
||||
tests = ['zfs_destroy_002_pos', 'zfs_destroy_003_pos', 'zfs_destroy_006_neg',
|
||||
'zfs_destroy_007_neg', 'zfs_destroy_014_pos', 'zfs_destroy_015_pos',
|
||||
'zfs_destroy_016_pos']
|
||||
tests = ['zfs_destroy_002_pos', 'zfs_destroy_003_pos', 'zfs_destroy_004_pos',
|
||||
'zfs_destroy_006_neg', 'zfs_destroy_007_neg', 'zfs_destroy_014_pos',
|
||||
'zfs_destroy_015_pos', 'zfs_destroy_016_pos']
|
||||
|
||||
# DISABLED:
|
||||
# zfs_get_004_pos - nested pools
|
||||
|
|
|
@ -110,9 +110,15 @@ for arg in "$fs1 $mntp1" "$clone $mntp2"; do
|
|||
cd $mntp
|
||||
log_mustnot $ZFS destroy $fs
|
||||
|
||||
log_must $ZFS destroy -f $fs
|
||||
datasetexists $fs && \
|
||||
log_fail "'zfs destroy -f' fails to destroy busy filesystem."
|
||||
if is_linux; then
|
||||
log_mustnot $ZFS destroy -f $fs
|
||||
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
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue