block: kill off q->flush_flags
[cascardo/linux.git] / block / blk-core.c
index 827f8ba..2475b1c 100644 (file)
@@ -706,7 +706,7 @@ struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id)
                goto fail_id;
 
        q->backing_dev_info.ra_pages =
-                       (VM_MAX_READAHEAD * 1024) / PAGE_CACHE_SIZE;
+                       (VM_MAX_READAHEAD * 1024) / PAGE_SIZE;
        q->backing_dev_info.capabilities = BDI_CAP_CGROUP_WRITEBACK;
        q->backing_dev_info.name = "block";
        q->node = node_id;
@@ -1523,6 +1523,7 @@ EXPORT_SYMBOL(blk_put_request);
  * blk_add_request_payload - add a payload to a request
  * @rq: request to update
  * @page: page backing the payload
+ * @offset: offset in page
  * @len: length of the payload.
  *
  * This allows to later add a payload to an already submitted request by
@@ -1533,12 +1534,12 @@ EXPORT_SYMBOL(blk_put_request);
  * discard requests should ever use it.
  */
 void blk_add_request_payload(struct request *rq, struct page *page,
-               unsigned int len)
+               int offset, unsigned int len)
 {
        struct bio *bio = rq->bio;
 
        bio->bi_io_vec->bv_page = page;
-       bio->bi_io_vec->bv_offset = 0;
+       bio->bi_io_vec->bv_offset = offset;
        bio->bi_io_vec->bv_len = len;
 
        bio->bi_iter.bi_size = len;
@@ -1963,7 +1964,8 @@ generic_make_request_checks(struct bio *bio)
         * drivers without flush support don't have to worry
         * about them.
         */
-       if ((bio->bi_rw & (REQ_FLUSH | REQ_FUA)) && !q->flush_flags) {
+       if ((bio->bi_rw & (REQ_FLUSH | REQ_FUA)) &&
+           !test_bit(QUEUE_FLAG_WC, &q->queue_flags)) {
                bio->bi_rw &= ~(REQ_FLUSH | REQ_FUA);
                if (!nr_sectors) {
                        err = 0;