]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/iomap.c
skd_main: don't use req->special
[linux.git] / fs / iomap.c
index 64ce240217a18985dd0510fd968b257dce214cd4..f61d13dfdf09583403e8402962ce373d68c03d19 100644 (file)
@@ -1553,6 +1553,7 @@ iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos,
                unsigned len)
 {
        struct page *page = ZERO_PAGE(0);
+       int flags = REQ_SYNC | REQ_IDLE;
        struct bio *bio;
 
        bio = bio_alloc(GFP_KERNEL, 1);
@@ -1561,9 +1562,12 @@ iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos,
        bio->bi_private = dio;
        bio->bi_end_io = iomap_dio_bio_end_io;
 
+       if (dio->iocb->ki_flags & IOCB_HIPRI)
+               flags |= REQ_HIPRI;
+
        get_page(page);
        __bio_add_page(bio, page, len, 0);
-       bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_SYNC | REQ_IDLE);
+       bio_set_op_attrs(bio, REQ_OP_WRITE, flags);
 
        atomic_inc(&dio->ref);
        return submit_bio(bio);
@@ -1662,6 +1666,9 @@ iomap_dio_bio_actor(struct inode *inode, loff_t pos, loff_t length,
                                bio_set_pages_dirty(bio);
                }
 
+               if (dio->iocb->ki_flags & IOCB_HIPRI)
+                       bio->bi_opf |= REQ_HIPRI;
+
                iov_iter_advance(dio->submit.iter, n);
 
                dio->size += n;