| .. | .. | 
|---|
| 1 |  | -/*  | 
|---|
| 2 |  | - */  | 
|---|
| 3 |  | -#include <linux/blkdev.h>  | 
|---|
 | 1 | +// SPDX-License-Identifier: GPL-2.0-only  | 
|---|
| 4 | 2 |  #include <linux/rwsem.h> | 
|---|
| 5 | 3 |  #include <linux/sched/debug.h> | 
|---|
| 6 | 4 |  #include <linux/sched/signal.h> | 
|---|
| 7 | 5 |  #include <linux/export.h> | 
|---|
 | 6 | +#include <linux/blkdev.h>  | 
|---|
| 8 | 7 |   | 
|---|
| 9 | 8 |  #include "rtmutex_common.h" | 
|---|
| 10 | 9 |   | 
|---|
| .. | .. | 
|---|
| 88 | 87 |   | 
|---|
| 89 | 88 |  	if (__down_read_trylock(sem)) | 
|---|
| 90 | 89 |  		return 0; | 
|---|
 | 90 | +  | 
|---|
| 91 | 91 |  	/* | 
|---|
| 92 |  | -	 * If rt_mutex blocks, the function sched_submit_work will not call  | 
|---|
| 93 |  | -	 * blk_schedule_flush_plug (because tsk_is_pi_blocked would be true).  | 
|---|
| 94 |  | -	 * We must call blk_schedule_flush_plug here, if we don't call it,  | 
|---|
| 95 |  | -	 * a deadlock in I/O may happen.  | 
|---|
 | 92 | +	 * Flush blk before ->pi_blocked_on is set. At schedule() time it is too  | 
|---|
 | 93 | +	 * late if one of the callbacks needs to acquire a sleeping lock.  | 
|---|
| 96 | 94 |  	 */ | 
|---|
| 97 |  | -	if (unlikely(blk_needs_flush_plug(current)))  | 
|---|
 | 95 | +	if (blk_needs_flush_plug(current))  | 
|---|
| 98 | 96 |  		blk_schedule_flush_plug(current); | 
|---|
| 99 | 97 |   | 
|---|
| 100 | 98 |  	might_sleep(); | 
|---|
| .. | .. | 
|---|
| 229 | 227 |  	struct rt_mutex *m = &sem->rtmutex; | 
|---|
| 230 | 228 |  	unsigned long flags; | 
|---|
| 231 | 229 |   | 
|---|
 | 230 | +	/*  | 
|---|
 | 231 | +	 * Flush blk before ->pi_blocked_on is set. At schedule() time it is too  | 
|---|
 | 232 | +	 * late if one of the callbacks needs to acquire a sleeping lock.  | 
|---|
 | 233 | +	 */  | 
|---|
 | 234 | +	if (blk_needs_flush_plug(current))  | 
|---|
 | 235 | +		blk_schedule_flush_plug(current);  | 
|---|
 | 236 | +  | 
|---|
| 232 | 237 |  	/* Take the rtmutex as a first step */ | 
|---|
| 233 | 238 |  	if (__rt_mutex_lock_state(m, state)) | 
|---|
| 234 | 239 |  		return -EINTR; | 
|---|