Re: [PATCH] block: fix .bi_size overflow

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 01, 2019 at 08:36:13AM +0200, Christoph Hellwig wrote:
> On Mon, Jul 01, 2019 at 12:16:44PM +0800, Ming Lei wrote:
> > 'bio->bi_iter.bi_size' is 'unsigned int', which at most hold 4G - 1
> > bytes.
> > 
> > Before 07173c3ec276 ("block: enable multipage bvecs"), one bio can
> > include very limited pages, and usually at most 256, so the fs bio
> > size won't be bigger than 1M bytes most of times.
> > 
> > Since we support multi-page bvec, in theory one fs bio really can
> > be added > 1M pages, especially in case of hugepage, or big writeback
> > in case of huge dirty pages. Then there is chance in which .bi_size
> > is overflowed.
> > 
> > Fixes this issue by adding bio_will_full() which checks if the added
> > segment may overflow .bi_size.
> 
> Can you please just add the argument to bio_full?  bio_will_full sounds
> rather odd.

OK.

> 
> Maybe also add a kerneldoc comment to the new bio_full to explain
> it.  Otherwise this looks fine to me.

Fine.


Thanks,
Ming



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux