Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dm mpath: do not lock up a CPU with requeuing activity

When using the block layer in single queue mode, get_request()
returns ERR_PTR(-EAGAIN) if the queue is dying and the REQ_NOWAIT
flag has been passed to get_request(). Avoid that the kernel
reports soft lockup complaints in this case due to continuous
requeuing activity.

Fixes: 7083abbbf ("dm mpath: avoid that path removal can trigger an infinite loop")
Cc: stable@vger.kernel.org
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Tested-by: Laurence Oberman <loberman@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>

authored by

Bart Van Assche and committed by
Mike Snitzer
1c23484c 60440789

-1
-1
drivers/md/dm-mpath.c
··· 504 504 if (queue_dying) { 505 505 atomic_inc(&m->pg_init_in_progress); 506 506 activate_or_offline_path(pgpath); 507 - return DM_MAPIO_REQUEUE; 508 507 } 509 508 return DM_MAPIO_DELAY_REQUEUE; 510 509 }