Hi Jens, On Tue, 26 Mar 2013 17:31:59 +1100 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote: > > After merging the final tree, today's linux-next build (powerpc allyesconfig) > failed like this: > > drivers/built-in.o: In function `bio_alloc_pages': > (.opd+0x2364a8): multiple definition of `bio_alloc_pages' > fs/built-in.o:(.opd+0x7188): first defined here > > Caused by an interaction between commits a07876064a0b ("block: Add > bio_alloc_pages()") and commit cafe56359144 ("bcache: A block layer > cache") from the block tree. > > I have applied the following fix patch (this should have happened in > merge commit 12f45f28441e "Merge branch 'for-3.10/drivers' into > for-next"): > > From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > Date: Tue, 26 Mar 2013 17:26:45 +1100 > Subject: [PATCH] block: remove the extra copy of bio_alloc_pages > > Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > --- > drivers/md/bcache/util.c | 18 ------------------ > drivers/md/bcache/util.h | 2 -- > 2 files changed, 20 deletions(-) > > diff --git a/drivers/md/bcache/util.c b/drivers/md/bcache/util.c > index dcec2e4..671a55d 100644 > --- a/drivers/md/bcache/util.c > +++ b/drivers/md/bcache/util.c > @@ -237,24 +237,6 @@ start: bv->bv_len = min_t(size_t, PAGE_SIZE - bv->bv_offset, > } > EXPORT_SYMBOL_GPL(bio_map); > > -int bio_alloc_pages(struct bio *bio, gfp_t gfp) > -{ > - int i; > - struct bio_vec *bv; > - > - bio_for_each_segment(bv, bio, i) { > - bv->bv_page = alloc_page(gfp); > - if (!bv->bv_page) { > - while (bv-- != bio->bi_io_vec + bio->bi_idx) > - __free_page(bv->bv_page); > - return -ENOMEM; > - } > - } > - > - return 0; > -} > -EXPORT_SYMBOL_GPL(bio_alloc_pages); > - > /* > * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group (Any > * use permitted, subject to terms of PostgreSQL license; see.) > diff --git a/drivers/md/bcache/util.h b/drivers/md/bcache/util.h > index 56705fd..499d746 100644 > --- a/drivers/md/bcache/util.h > +++ b/drivers/md/bcache/util.h > @@ -570,8 +570,6 @@ static inline unsigned fract_exp_two(unsigned x, unsigned fract_bits) > > void bio_map(struct bio *bio, void *base); > > -int bio_alloc_pages(struct bio *bio, gfp_t gfp); > - > static inline sector_t bdev_sectors(struct block_device *bdev) > { > return bdev->bd_inode->i_size >> 9; > -- > 1.8.1 Ping? -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
Attachment:
pgpg3ABLes9vD.pgp
Description: PGP signature