On 29 June 2018 at 10:43, Christoph Hellwig <hch@xxxxxx> wrote: >> A possible fix is to change the alignment check in iomap_dio_actor as follows: >> >> - if ((pos | length | align) & ((1 << blkbits) - 1)) >> + if ((pos | align) & ((1 << blkbits) - 1)) >> + return -EINVAL; >> + if (length & ((1 << blkbits) - 1) && >> + pos + length != iomap->offset + iomap->length) >> return -EINVAL; >> >> Moving the alignment check from iomap_dio_actor to iomap_dio_rw isn't >> that easy because iomap->bdev isn't known there. > > Just make the check conditional on iomap->type != IOMAP_INLINE > as alignment checks on inline data don't make much sense. Yeah, probably. Thanks, Andreas