blk-rq-qos.c (e791ee6885f7e9e32c3e551cadea8bc6effaae1e) blk-rq-qos.c (11c7aa0ddea8611007768d3e6b58d45dc60a19e1)
1// SPDX-License-Identifier: GPL-2.0
2
3#include "blk-rq-qos.h"
4
5/*
6 * Increment 'v', if 'v' is below 'below'. Returns true if we succeeded,
7 * false if 'v' + 1 would be bigger than 'below'.
8 */

--- 252 unchanged lines hidden (view full) ---

261 .private_data = private_data,
262 };
263 bool has_sleeper;
264
265 has_sleeper = wq_has_sleeper(&rqw->wait);
266 if (!has_sleeper && acquire_inflight_cb(rqw, private_data))
267 return;
268
1// SPDX-License-Identifier: GPL-2.0
2
3#include "blk-rq-qos.h"
4
5/*
6 * Increment 'v', if 'v' is below 'below'. Returns true if we succeeded,
7 * false if 'v' + 1 would be bigger than 'below'.
8 */

--- 252 unchanged lines hidden (view full) ---

261 .private_data = private_data,
262 };
263 bool has_sleeper;
264
265 has_sleeper = wq_has_sleeper(&rqw->wait);
266 if (!has_sleeper && acquire_inflight_cb(rqw, private_data))
267 return;
268
269 prepare_to_wait_exclusive(&rqw->wait, &data.wq, TASK_UNINTERRUPTIBLE);
270 has_sleeper = !wq_has_single_sleeper(&rqw->wait);
269 has_sleeper = !prepare_to_wait_exclusive(&rqw->wait, &data.wq,
270 TASK_UNINTERRUPTIBLE);
271 do {
272 /* The memory barrier in set_task_state saves us here. */
273 if (data.got_token)
274 break;
275 if (!has_sleeper && acquire_inflight_cb(rqw, private_data)) {
276 finish_wait(&rqw->wait, &data.wq);
277
278 /*

--- 26 unchanged lines hidden ---
271 do {
272 /* The memory barrier in set_task_state saves us here. */
273 if (data.got_token)
274 break;
275 if (!has_sleeper && acquire_inflight_cb(rqw, private_data)) {
276 finish_wait(&rqw->wait, &data.wq);
277
278 /*

--- 26 unchanged lines hidden ---