diff options
author | NeilBrown <neilb@suse.com> | 2017-12-04 08:21:04 +1100 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2017-12-11 08:52:34 -0800 |
commit | 474beb575c03e0e7f1a704ac428916898f81b3cd (patch) | |
tree | ce5695048133b58a6166df18f40f12e23ce00d78 /block/scsi_ioctl.c | |
parent | d5d885fd514fcebc9da5503c88aa0112df7514ef (diff) |
md/raid1,raid10: silence warning about wait-within-wait
If you prepare_to_wait() after a previous prepare_to_wait(),
but before calling schedule(), you get warning:
do not call blocking ops when !TASK_RUNNING; state=2
This is appropriate as it is often a bug. The event that the
first prepare_to_wait() expects might wake up the schedule following
the second prepare_to_wait(), which could be confusing.
However if both prepare_to_wait()s are part of simple wait_event()
loops, and if the inner one is rarely called, then there is
no problem. The inner loop is too simple to get confused by
a stray wakeup, and the outer loop won't spin unduly because the
inner doesnt affect it often.
This pattern occurs in both raid1.c and raid10.c in the use of
flush_pending_writes().
The warning can be silenced by setting current->state to TASK_RUNNING.
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'block/scsi_ioctl.c')
0 files changed, 0 insertions, 0 deletions