|
@@ -712,75 +712,6 @@ void blk_queue_flag_clear(unsigned int flag, struct request_queue *q);
|
|
|
bool blk_queue_flag_test_and_set(unsigned int flag, struct request_queue *q);
|
|
|
bool blk_queue_flag_test_and_clear(unsigned int flag, struct request_queue *q);
|
|
|
|
|
|
-/*
|
|
|
- * @q->queue_lock is set while a queue is being initialized. Since we know
|
|
|
- * that no other threads access the queue object before @q->queue_lock has
|
|
|
- * been set, it is safe to manipulate queue flags without holding the
|
|
|
- * queue_lock if @q->queue_lock == NULL. See also blk_alloc_queue_node() and
|
|
|
- * blk_init_allocated_queue().
|
|
|
- */
|
|
|
-static inline void queue_lockdep_assert_held(struct request_queue *q)
|
|
|
-{
|
|
|
- if (q->queue_lock)
|
|
|
- lockdep_assert_held(q->queue_lock);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void queue_flag_set_unlocked(unsigned int flag,
|
|
|
- struct request_queue *q)
|
|
|
-{
|
|
|
- if (test_bit(QUEUE_FLAG_INIT_DONE, &q->queue_flags) &&
|
|
|
- kref_read(&q->kobj.kref))
|
|
|
- lockdep_assert_held(q->queue_lock);
|
|
|
- __set_bit(flag, &q->queue_flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void queue_flag_clear_unlocked(unsigned int flag,
|
|
|
- struct request_queue *q)
|
|
|
-{
|
|
|
- if (test_bit(QUEUE_FLAG_INIT_DONE, &q->queue_flags) &&
|
|
|
- kref_read(&q->kobj.kref))
|
|
|
- lockdep_assert_held(q->queue_lock);
|
|
|
- __clear_bit(flag, &q->queue_flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline int queue_flag_test_and_clear(unsigned int flag,
|
|
|
- struct request_queue *q)
|
|
|
-{
|
|
|
- queue_lockdep_assert_held(q);
|
|
|
-
|
|
|
- if (test_bit(flag, &q->queue_flags)) {
|
|
|
- __clear_bit(flag, &q->queue_flags);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-static inline int queue_flag_test_and_set(unsigned int flag,
|
|
|
- struct request_queue *q)
|
|
|
-{
|
|
|
- queue_lockdep_assert_held(q);
|
|
|
-
|
|
|
- if (!test_bit(flag, &q->queue_flags)) {
|
|
|
- __set_bit(flag, &q->queue_flags);
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- return 1;
|
|
|
-}
|
|
|
-
|
|
|
-static inline void queue_flag_set(unsigned int flag, struct request_queue *q)
|
|
|
-{
|
|
|
- queue_lockdep_assert_held(q);
|
|
|
- __set_bit(flag, &q->queue_flags);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
|
|
|
-{
|
|
|
- queue_lockdep_assert_held(q);
|
|
|
- __clear_bit(flag, &q->queue_flags);
|
|
|
-}
|
|
|
-
|
|
|
#define blk_queue_tagged(q) test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags)
|
|
|
#define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags)
|
|
|
#define blk_queue_dying(q) test_bit(QUEUE_FLAG_DYING, &(q)->queue_flags)
|