blk-mq: Record nr_active_requests per queue for when using shared sbitmap
[linux-2.6-microblaze.git] / include / linux / blkdev.h
index bb5636c..6277aee 100644 (file)
@@ -24,6 +24,7 @@
 #include <linux/percpu-refcount.h>
 #include <linux/scatterlist.h>
 #include <linux/blkzoned.h>
+#include <linux/pm.h>
 
 struct module;
 struct scsi_ioctl_command;
@@ -458,7 +459,7 @@ struct request_queue {
 
 #ifdef CONFIG_PM
        struct device           *dev;
-       int                     rpm_status;
+       enum rpm_status         rpm_status;
        unsigned int            nr_pending;
 #endif
 
@@ -484,6 +485,8 @@ struct request_queue {
        struct timer_list       timeout;
        struct work_struct      timeout_work;
 
+       atomic_t                nr_active_requests_shared_sbitmap;
+
        struct list_head        icq_list;
 #ifdef CONFIG_BLK_CGROUP
        DECLARE_BITMAP          (blkcg_pols, BLKCG_MAX_POLS);
@@ -1455,10 +1458,9 @@ static inline int bdev_alignment_offset(struct block_device *bdev)
 
        if (q->limits.misaligned)
                return -1;
-
        if (bdev != bdev->bd_contains)
-               return bdev->bd_part->alignment_offset;
-
+               return queue_limit_alignment_offset(&q->limits,
+                               bdev->bd_part->start_sect);
        return q->limits.alignment_offset;
 }
 
@@ -1498,8 +1500,8 @@ static inline int bdev_discard_alignment(struct block_device *bdev)
        struct request_queue *q = bdev_get_queue(bdev);
 
        if (bdev != bdev->bd_contains)
-               return bdev->bd_part->discard_alignment;
-
+               return queue_limit_discard_alignment(&q->limits,
+                               bdev->bd_part->start_sect);
        return q->limits.discard_alignment;
 }