Konstantin Belousov
91e9474552
Make it possible to atomically resume writes on the mount and account
...
the write start, by adding a variation of the vfs_write_resume(9)
which accepts flags.
Use the new function to prevent a deadlock between parallel suspension
and snapshotting a UFS mount. The ffs_snapshot() code performed
vfs_write_resume() followed by vn_start_write() while owning the
snaplock. If the suspension intervene between resume and
vn_start_write(), the deadlock occured after the suspending thread
tried to lock the snaplock, most typically during the write in the
ffs_copyonwrite().
Reported and tested by: Andreas Longwitz <longwitz@incore.de>
Reviewed by: mckusick
MFC after: 2 weeks
X-MFC-note: make the vfs_write_resume(9) function a macro after the MFC,
in HEAD
2012-12-28 23:08:30 +00:00
..
2012-08-30 21:22:47 +00:00
2011-11-19 14:10:16 +00:00
2011-12-16 10:56:16 +00:00
2012-11-11 23:25:47 +00:00
2011-12-27 21:36:31 +00:00
2012-09-18 00:43:15 +00:00
2012-11-11 23:25:47 +00:00
2012-06-24 04:15:58 +00:00
2012-02-25 02:12:17 +00:00
2012-05-22 10:59:26 +00:00
2012-05-25 20:33:34 +00:00
2012-07-12 10:09:34 +00:00
2012-12-28 17:41:36 +00:00
2012-10-28 18:53:28 +00:00
2012-10-22 17:50:54 +00:00
2012-03-01 19:58:34 +00:00
2012-08-15 15:42:57 +00:00
2012-12-20 00:34:54 +00:00
2012-05-03 10:38:02 +00:00
2012-10-01 05:43:24 +00:00
2012-10-09 14:32:30 +00:00
2012-01-15 13:23:18 +00:00
2012-11-01 17:01:05 +00:00
2011-12-17 15:39:14 +00:00
2012-01-15 13:23:18 +00:00
2011-12-31 04:38:04 +00:00
2012-03-12 07:02:16 +00:00
2012-05-25 20:33:34 +00:00
2012-04-18 11:59:03 +00:00
2012-07-11 16:27:02 +00:00
2012-01-15 13:23:18 +00:00
2012-05-06 18:34:31 +00:00
2012-03-26 09:34:17 +00:00
2012-11-27 21:19:58 +00:00
2012-07-27 10:41:10 +00:00
2012-12-23 22:43:27 +00:00
2012-06-14 16:24:03 +00:00
2012-12-14 12:37:35 +00:00
2012-05-25 20:33:34 +00:00
2012-09-04 12:07:33 +00:00
2012-05-21 02:30:22 +00:00
2012-06-28 07:37:46 +00:00
2012-01-15 13:23:18 +00:00
2012-10-22 02:59:55 +00:00
2012-02-29 00:30:18 +00:00
2012-12-10 23:12:51 +00:00
2012-10-19 10:04:43 +00:00
2011-11-15 20:11:03 +00:00
2012-12-19 20:10:00 +00:00
2012-04-20 15:32:36 +00:00
2012-03-26 18:22:04 +00:00
2012-11-13 18:24:47 +00:00
2011-11-16 21:51:17 +00:00
2011-12-12 23:29:32 +00:00
2012-03-01 19:58:34 +00:00
2012-12-05 08:04:20 +00:00
2011-11-18 03:05:20 +00:00
2012-07-07 20:32:21 +00:00
2012-04-01 18:22:48 +00:00
2012-12-15 02:04:46 +00:00
2012-03-19 00:36:32 +00:00
2012-11-02 16:31:01 +00:00
2012-11-27 10:32:35 +00:00
2012-11-23 12:12:06 +00:00
2012-09-18 00:43:15 +00:00
2012-07-31 05:48:35 +00:00
2012-10-19 17:01:27 +00:00
2012-08-22 20:22:55 +00:00
2012-03-28 20:58:30 +00:00
2012-11-16 08:25:06 +00:00
2012-12-07 02:22:48 +00:00
2012-02-11 14:49:25 +00:00
2012-09-13 08:13:01 +00:00
2012-10-26 16:01:08 +00:00
2012-05-30 16:06:38 +00:00
2012-10-26 16:01:08 +00:00
2012-07-27 09:16:48 +00:00
2012-11-13 12:52:31 +00:00
2012-01-22 20:25:00 +00:00
2012-02-27 18:28:31 +00:00
2011-11-16 21:51:17 +00:00
2012-11-03 15:57:37 +00:00
2012-10-29 01:35:17 +00:00
2012-05-15 01:30:25 +00:00
2012-03-26 19:12:09 +00:00
2012-05-22 08:33:14 +00:00
2012-11-15 00:51:57 +00:00
2012-02-26 13:55:43 +00:00
2012-12-08 08:35:49 +00:00
2011-12-21 12:39:08 +00:00
2011-11-16 19:06:55 +00:00
2012-07-22 20:08:38 +00:00
2012-06-24 04:15:58 +00:00
2011-11-21 12:59:52 +00:00
2012-11-13 12:53:41 +00:00
2012-11-13 12:53:41 +00:00
2012-11-16 06:29:52 +00:00
2012-12-11 19:54:35 +00:00
2012-06-23 10:14:51 +00:00
2012-11-13 12:53:41 +00:00
2012-12-11 01:23:50 +00:00
2011-12-19 18:55:13 +00:00
2012-09-01 08:45:58 +00:00
2011-12-24 01:32:01 +00:00
2011-11-21 13:34:29 +00:00
2012-11-03 22:21:37 +00:00
2012-02-06 18:15:46 +00:00
2012-02-06 18:15:46 +00:00
2012-11-16 06:29:52 +00:00
2012-04-29 11:04:31 +00:00
2011-11-14 07:12:10 +00:00
2012-04-05 02:24:08 +00:00
2012-08-17 02:26:31 +00:00
2012-08-21 17:06:36 +00:00
2012-06-23 09:33:06 +00:00
2012-11-13 02:50:39 +00:00
2012-12-28 23:08:30 +00:00
2012-05-25 20:33:34 +00:00
2012-11-16 06:29:52 +00:00