Artem Bityutskiy 94eac5e623 writeback: fix possible race when creating bdi threads
This patch fixes a very unlikely race condition on the bdi forker thread error
path: when bdi thread creation fails, 'bdi->wb.task' may contain the error code
for a short period of time. If at the same time someone submits a work to this
bdi, we can end up with an oops 'bdi_queue_work()' while executing
'wake_up_process(wb->task)'.

This patch fixes the issue by introducing a temporary variable 'task' and
storing the possible error code there, so that 'wb->task' would never take
erroneous values.

Note, this race is very unlikely and I never hit it, so it is theoretical, but
nevertheless worth fixing.

This patch also merges 2 comments which were previously separate.

Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
2010-08-07 18:53:19 +02:00
..
2009-04-01 08:59:13 -07:00
2010-03-06 11:26:23 -08:00
2009-06-16 19:47:28 -07:00
2010-07-14 17:14:00 +10:00
2010-07-14 17:14:00 +10:00
2010-07-14 17:14:00 +10:00
2009-09-22 07:17:35 -07:00
2010-05-25 08:06:58 -07:00
2010-03-24 16:31:21 -07:00
2010-05-21 18:31:21 -04:00
2010-05-25 08:07:00 -07:00
2010-05-25 15:06:06 +02:00
2009-06-23 12:50:05 -07:00
2010-05-27 22:15:33 -04:00