aboutsummaryrefslogtreecommitdiffstats
path: root/module/zfs/dsl_destroy.c
diff options
context:
space:
mode:
authorilbsmart <[email protected]>2018-10-17 02:11:24 +0800
committerMatthew Ahrens <[email protected]>2018-10-16 11:11:24 -0700
commit779a6c0bf6df76e0dd92c1ccf81f48512b835bb0 (patch)
treeafd6c82c91daeb96b9d0a9b6d48e757f4d0e5c81 /module/zfs/dsl_destroy.c
parentb2030e5d51ec23fced9f54536d97ac09db4e0552 (diff)
deadlock between mm_sem and tx assign in zfs_write() and page fault
The bug time sequence: 1. thread #1, `zfs_write` assign a txg "n". 2. In a same process, thread #2, mmap page fault (which means the `mm_sem` is hold) occurred, `zfs_dirty_inode` open a txg failed, and wait previous txg "n" completed. 3. thread #1 call `uiomove` to write, however page fault is occurred in `uiomove`, which means it need `mm_sem`, but `mm_sem` is hold by thread #2, so it stuck and can't complete, then txg "n" will not complete. So thread #1 and thread #2 are deadlocked. Reviewed-by: Chunwei Chen <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Matthew Ahrens <[email protected]> Signed-off-by: Grady Wong <[email protected]> Closes #7939
Diffstat (limited to 'module/zfs/dsl_destroy.c')
0 files changed, 0 insertions, 0 deletions