On Thu, Jun 27, 2019 at 04:39:50PM +0200, Christoph Hellwig wrote: > Properly allocate the space for the bio_vecs instead of just one byte > per bio_vec. > > Fixes: 991fc1d2e65e ("xfs: use bios directly to write log buffers") > Reported-by: syzbot+b75afdbe271a0d7ac4f6@xxxxxxxxxxxxxxxxxxxxxxxxx > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Doh.... Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --D > --- > fs/xfs/xfs_log.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 0f849b4095d6..e230f3c18ceb 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -1415,7 +1415,8 @@ xlog_alloc_log( > */ > ASSERT(log->l_iclog_size >= 4096); > for (i = 0; i < log->l_iclog_bufs; i++) { > - size_t bvec_size = howmany(log->l_iclog_size, PAGE_SIZE); > + size_t bvec_size = howmany(log->l_iclog_size, PAGE_SIZE) * > + sizeof(struct bio_vec); > > iclog = kmem_zalloc(sizeof(*iclog) + bvec_size, KM_MAYFAIL); > if (!iclog) > -- > 2.20.1 >