summaryrefslogtreecommitdiffstats
path: root/tests/runfiles
diff options
context:
space:
mode:
authorOlaf Faaland <[email protected]>2017-07-24 08:48:28 -0700
committerBrian Behlendorf <[email protected]>2017-07-25 12:25:05 -0400
commitffb195c256f8a74a87c3834258ec90c513d66adb (patch)
tree07c0c43142ed997d8d5105ca05c802a859b8cd77 /tests/runfiles
parentf43615d0cc22d7db496c1291c84e64e269ca51d9 (diff)
Release SCL_STATE in map_write_done()
The config lock must be held for the duration of the MMP write. Since the I/Os are executed via map_nowait(), the done function is the only place where we know the write has completed. Since SCL_STATE is taken as reader, overlapping I/Os do not create a deadlock. The refcount is simply increased when new I/Os are queued and decreased when I/Os complete. Test case added which exercises the probe IO call path to verify the fix and prevent a regression. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Olaf Faaland <[email protected]> Closes #6394
Diffstat (limited to 'tests/runfiles')
-rw-r--r--tests/runfiles/linux.run3
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/runfiles/linux.run b/tests/runfiles/linux.run
index e556f1e8c..842f6dd0c 100644
--- a/tests/runfiles/linux.run
+++ b/tests/runfiles/linux.run
@@ -412,7 +412,8 @@ tests = ['mmap_write_001_pos', 'mmap_read_001_pos']
[tests/functional/mmp]
tests = ['mmp_on_thread', 'mmp_on_uberblocks', 'mmp_on_off', 'mmp_interval',
- 'mmp_active_import', 'mmp_inactive_import', 'mmp_exported_import']
+ 'mmp_active_import', 'mmp_inactive_import', 'mmp_exported_import',
+ 'mmp_write_uberblocks']
[tests/functional/mount]
tests = ['umount_001', 'umountall_001']