summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/blkdev.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index c09696a..95864b3 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -410,6 +410,12 @@ struct request_queue
#define QUEUE_FLAG_BIDI 9 /* queue supports bidi requests */
#define QUEUE_FLAG_NOMERGES 10 /* disable merge attempts */
+static inline int queue_is_locked(struct request_queue *q)
+{
+ spinlock_t *lock = q->queue_lock;
+ return lock && spin_is_locked(lock);
+}
+
static inline void queue_flag_set_unlocked(unsigned int flag,
struct request_queue *q)
{
@@ -418,7 +424,7 @@ static inline void queue_flag_set_unlocked(unsigned int flag,
static inline void queue_flag_set(unsigned int flag, struct request_queue *q)
{
- WARN_ON_ONCE(!spin_is_locked(q->queue_lock));
+ WARN_ON_ONCE(!queue_is_locked(q));
__set_bit(flag, &q->queue_flags);
}
@@ -430,7 +436,7 @@ static inline void queue_flag_clear_unlocked(unsigned int flag,
static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
{
- WARN_ON_ONCE(!spin_is_locked(q->queue_lock));
+ WARN_ON_ONCE(!queue_is_locked(q));
__clear_bit(flag, &q->queue_flags);
}
OpenPOWER on IntegriCloud