Merge branch 'akpm' (patches from Andrew Morton) into next
[cascardo/linux.git] / include / linux / blkdev.h
index 8aba35f..3cd426e 100644 (file)
@@ -335,7 +335,7 @@ struct request_queue {
        unsigned int            *mq_map;
 
        /* sw queues */
-       struct blk_mq_ctx       *queue_ctx;
+       struct blk_mq_ctx __percpu      *queue_ctx;
        unsigned int            nr_queues;
 
        /* hw dispatch queues */
@@ -1588,6 +1588,7 @@ static inline bool blk_integrity_is_initialized(struct gendisk *g)
 struct block_device_operations {
        int (*open) (struct block_device *, fmode_t);
        void (*release) (struct gendisk *, fmode_t);
+       int (*rw_page)(struct block_device *, sector_t, struct page *, int rw);
        int (*ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
        int (*compat_ioctl) (struct block_device *, fmode_t, unsigned, unsigned long);
        int (*direct_access) (struct block_device *, sector_t,
@@ -1606,7 +1607,13 @@ struct block_device_operations {
 
 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
                                 unsigned long);
+extern int bdev_read_page(struct block_device *, sector_t, struct page *);
+extern int bdev_write_page(struct block_device *, sector_t, struct page *,
+                                               struct writeback_control *);
 #else /* CONFIG_BLOCK */
+
+struct block_device;
+
 /*
  * stubs for when the block layer is configured out
  */
@@ -1642,6 +1649,12 @@ static inline bool blk_needs_flush_plug(struct task_struct *tsk)
        return false;
 }
 
+static inline int blkdev_issue_flush(struct block_device *bdev, gfp_t gfp_mask,
+                                    sector_t *error_sector)
+{
+       return 0;
+}
+
 #endif /* CONFIG_BLOCK */
 
 #endif