ilbsmart 779a6c0bf6 deadlock between mm_sem and tx assign in zfs_write() and page fault
The bug time sequence:
1. thread , `zfs_write` assign a txg "n".
2. In a same process, thread , 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  call `uiomove` to write, however page fault is occurred
   in `uiomove`, which means it need `mm_sem`, but `mm_sem` is hold by
   thread , so it stuck and can't complete,  then txg "n" will
   not complete.

So thread  and thread  are deadlocked.

Reviewed-by: Chunwei Chen <tuxoko@gmail.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Signed-off-by: Grady Wong <grady.w@xtaotech.com>
Closes 
2018-10-16 11:11:24 -07:00
..
2018-10-01 10:42:05 -07:00
2018-10-09 10:10:26 -07:00
2015-01-16 14:41:26 -08:00
2017-08-14 10:36:48 -07:00
2017-06-26 14:36:49 -07:00
2018-10-01 10:42:05 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-01 11:24:20 -07:00
2018-10-09 14:05:13 -07:00
2018-10-09 14:05:13 -07:00
2018-08-15 09:53:44 -07:00
2018-05-29 16:00:33 -07:00
2018-10-03 09:47:11 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2017-10-11 16:54:48 -04:00
2015-01-16 14:41:26 -08:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-03-15 10:53:58 -07:00
2018-10-01 10:42:05 -07:00
2018-03-15 10:53:58 -07:00
2010-08-31 13:41:58 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-09-05 18:33:36 -07:00
2016-11-29 14:34:33 -08:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-02-13 14:54:54 -08:00
2018-09-26 09:50:58 -07:00
2018-10-03 09:47:11 -07:00
2018-05-29 16:00:33 -07:00
2018-05-29 16:00:33 -07:00
2018-02-09 10:08:05 -08:00
2018-08-27 10:04:21 -07:00
2018-05-29 16:00:33 -07:00