Whamcloud - gitweb
LU-13088 ldlm: Fix sleeping function called in atomic 63/37063/2
authorMr NeilBrown <neilb@suse.de>
Thu, 19 Dec 2019 05:55:35 +0000 (16:55 +1100)
committerOleg Drokin <green@whamcloud.com>
Fri, 10 Jan 2020 07:42:36 +0000 (07:42 +0000)
commitb29b9310dafe17ba78e1db490b79b89d2d6fdcd1
treeed1ed06073acf0e29403171120498c895de774cc
parentf46646c286243de196e4553ff897de1c8341dad7
LU-13088 ldlm: Fix sleeping function called in atomic

target_recovery_overseer() can sleep while holding a spinlock, which
triggers a BUG warning.

It is easily fixed by dropping the spinlock before waiting.  In the
case where the task waits, no useful information that could be
protected by the spinlock is held, so nothing can be lost by dropping
it.

Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I8bb3d02523b5dcfadac19f01ccb736d7b7f28239
Reviewed-on: https://review.whamcloud.com/37063
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Mike Pershin <mpershin@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/ldlm/ldlm_lib.c