> @@ -385,6 +385,8 @@ dio_bio_alloc(struct dio *dio, struct dio_submit *sdio, > else > bio->bi_end_io = dio_bio_end_io; > > + bio->bi_opf |= write_hint_to_opf(iocb_write_hint(dio->iocb)); > + > sdio->bio = bio; > sdio->logical_offset_in_bio = sdio->cur_page_fs_offset; > } > diff --git a/fs/iomap.c b/fs/iomap.c > index c71a64b97fba..9c9f8406018b 100644 > --- a/fs/iomap.c > +++ b/fs/iomap.c > @@ -804,6 +804,7 @@ iomap_dio_actor(struct inode *inode, loff_t pos, loff_t length, > > if (dio->flags & IOMAP_DIO_WRITE) { > bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_SYNC | REQ_IDLE); > + bio->bi_opf |= write_hint_to_opf(inode_write_hint(inode)); This should be iocb based as well, otherwise you'll miss out on the per-file hints. Also please don't add a > 80 char line. (And yes, I should fix the one just above, too) > task_io_account_write(bio->bi_iter.bi_size); > } else { > bio_set_op_attrs(bio, REQ_OP_READ, 0); > -- > 2.7.4 > ---end quoted text---