diff options
author | Olaf Faaland <[email protected]> | 2017-07-24 08:48:28 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2017-07-25 12:25:05 -0400 |
commit | ffb195c256f8a74a87c3834258ec90c513d66adb (patch) | |
tree | 07c0c43142ed997d8d5105ca05c802a859b8cd77 /cmd/zpool/zpool_main.c | |
parent | f43615d0cc22d7db496c1291c84e64e269ca51d9 (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 'cmd/zpool/zpool_main.c')
0 files changed, 0 insertions, 0 deletions