Alan Cox
ec9c9e7363
Eliminate inconsistency in the setting of the B_DONE flag. Specifically,
...
make the b_iodone callback responsible for setting it if it is needed.
Previously, it was set unconditionally by bufdone() without holding
whichever lock is shared by the b_iodone callback and the corresponding
top-half function. Consequently, in a race, the top-half function could
conclude that operation was done before the b_iodone callback finished.
See, for example, aio_physwakeup() and aio_fphysio().
Note: I don't believe that the other, more widely-used b_iodone callbacks
are affected.
Discussed with: jeff
Reviewed by: phk
MFC after: 2 weeks
2005-07-20 19:06:06 +00:00
..
2005-06-30 07:49:22 +00:00
2005-06-19 02:21:03 +00:00
2005-07-01 16:28:32 +00:00
2005-07-08 15:06:58 +00:00
2005-06-30 17:17:29 +00:00
2005-07-14 10:22:09 +00:00
2005-06-25 03:34:49 +00:00
2005-07-01 16:28:32 +00:00
2005-06-30 19:01:26 +00:00
2005-07-18 20:08:14 +00:00
2005-07-01 16:28:32 +00:00
2005-06-20 19:32:23 +00:00
2005-06-23 22:13:29 +00:00
2005-06-23 21:55:43 +00:00
2005-06-10 23:21:29 +00:00
2005-06-24 12:05:24 +00:00
2005-05-28 23:20:05 +00:00
2005-07-14 10:46:03 +00:00
2005-07-14 15:21:18 +00:00
2005-07-17 14:04:03 +00:00
2005-07-15 18:17:59 +00:00
2005-05-28 14:34:41 +00:00
2005-06-09 19:45:09 +00:00
2005-06-01 17:52:51 +00:00
2005-06-06 05:13:10 +00:00
2005-06-10 03:00:29 +00:00
2005-05-23 23:01:53 +00:00
2005-07-10 23:31:11 +00:00
2005-05-27 04:27:22 +00:00
2005-07-13 20:50:17 +00:00
2005-05-30 15:09:18 +00:00
2005-06-24 00:16:57 +00:00
2005-06-24 00:16:57 +00:00
2005-06-09 05:50:01 +00:00
2005-05-03 10:58:05 +00:00
2005-06-15 23:32:07 +00:00
2005-06-29 23:23:16 +00:00
2005-06-06 22:18:32 +00:00
2005-05-06 02:50:00 +00:00
2005-05-27 15:57:27 +00:00
2005-06-30 03:38:10 +00:00
2005-06-04 23:24:50 +00:00
2005-07-07 18:17:55 +00:00
2005-07-01 16:28:32 +00:00
2005-06-30 07:49:22 +00:00
2005-07-08 15:06:58 +00:00
2005-07-08 15:01:13 +00:00
2005-06-07 05:03:28 +00:00
2005-05-12 20:04:48 +00:00
2005-07-14 10:22:09 +00:00
2005-07-01 16:28:32 +00:00
2005-06-11 11:59:48 +00:00
2005-06-05 17:13:23 +00:00
2005-07-17 14:04:03 +00:00
2005-05-04 18:55:03 +00:00
2005-06-08 07:29:22 +00:00
2005-07-01 16:28:32 +00:00
2005-07-01 16:28:32 +00:00
2005-07-01 16:28:32 +00:00
2005-07-05 22:49:10 +00:00
2005-05-07 00:41:36 +00:00
2005-07-20 19:06:06 +00:00
2005-07-20 19:06:06 +00:00
2005-06-17 01:05:13 +00:00
2005-05-14 05:09:11 +00:00
2005-06-14 20:32:27 +00:00
2005-05-11 18:25:42 +00:00
2005-06-23 22:13:29 +00:00
2005-05-18 22:05:12 +00:00
2005-07-20 01:43:27 +00:00
2005-06-23 22:13:29 +00:00
2005-06-14 01:14:40 +00:00
2005-06-09 20:20:31 +00:00