[Drbd-dev] bio_split()...

Philipp Reisner philipp.reisner at linbit.com
Tue Mar 15 21:15:58 CET 2005


Hi Jens,

bio_split only works for bios with a single page...

[ from bio.c: ]
/*
 * split a bio - only worry about a bio with a single page
 * in it's iovec
 */
struct bio_pair *bio_split(struct bio *bi, mempool_t *pool, int first_sectors)
{
 struct bio_pair *bp = mempool_alloc(pool, GFP_NOIO);

 if (!bp)
  return bp;

 BUG_ON(bi->bi_vcnt != 1);
[...]

In DRBD-0.8 I want to split BIO's that cross a 16 MB boundary. 
In DRBD-0.8 I accept BIOs with more than one page (currently up to
32 kB in a single BIO), I thought that bio_split is here
to handle such situations....

Is there an other way to go ?
Would you accept a patch that would make bio_split to work with bigger
BIOs ?

Currently my code hits that BUG_ON statement....

-Philipp



More information about the drbd-dev mailing list