> static blk_qc_t > iomap_dio_zero(struct iomap_dio *dio, struct iomap *iomap, loff_t pos, > unsigned len) > { > struct page *page = ZERO_PAGE(0); > struct bio *bio; > + int npages = howmany(len, PAGE_SIZE); > + > + WARN_ON_ONCE(npages > 16); Where does this magic 16 come from? > + WARN_ON(len != 0); WARN_ON_ONCE please to avoid making the log unreadable if it ever triggers. > +/* > + * This is lifted almost straight from xfs_flush_unmap_range(). Need a generic > + * version of the block size rounding for these purposes. > + */ Can you just add a generic version of this in a separate patch and also switch XFS over to it? > +static int > +iomap_flush_unmap_range(struct file *f, loff_t offset, loff_t len) Can we please spell out file in the parameter name?