Hi Jens, After merging the block tree, today's linux-next build (powerpc ppc64_defconfig) failed like this: drivers/block/loop.c: In function 'lo_rw_aio': drivers/block/loop.c:243:28: error: 'struct bio' has no member named 'bi_sector' loff_t pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; ^ drivers/block/loop.c:254:2: error: implicit declaration of function 'bio_iovec_idx' [-Werror=implicit-function-declaration] bvec = bio_iovec_idx(bio, bio->bi_idx); ^ drivers/block/loop.c:254:31: error: 'struct bio' has no member named 'bi_idx' bvec = bio_iovec_idx(bio, bio->bi_idx); ^ drivers/block/loop.c: In function 'lo_discard': drivers/block/loop.c:476:28: error: 'struct bio' has no member named 'bi_sector' loff_t pos = ((loff_t) bio->bi_sector << 9) + lo->lo_offset; ^ drivers/block/loop.c:489:50: error: 'struct bio' has no member named 'bi_size' ret = file->f_op->fallocate(file, mode, pos, bio->bi_size); ^ Basically caused by in incomplete merge between the block tree and the aio-direct tree (see my previous email). I was going to apply a merge fix patch, but I also got these: In file included from include/linux/blkdev.h:18:0, from drivers/block/ps3disk.c:22: drivers/block/ps3disk.c: In function 'ps3disk_scatter_gather': include/linux/bio.h:239:9: error: incompatible types when assigning to type 'struct bio_vec *' from type 'struct bio_vec' ((bvl = bio_iter_iovec((bio), (iter))), 1); \ ^ include/linux/bio.h:243:2: note: in expansion of macro '__bio_for_each_segment' __bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter) ^ include/linux/blkdev.h:748:3: note: in expansion of macro 'bio_for_each_segment' bio_for_each_segment(bvl, _iter.bio, _iter.iter) ^ drivers/block/ps3disk.c:102:2: note: in expansion of macro 'rq_for_each_segment' rq_for_each_segment(bvec, req, iter) { ^ include/linux/bio.h:239:41: warning: left-hand operand of comma expression has no effect [-Wunused-value] ((bvl = bio_iter_iovec((bio), (iter))), 1); \ ^ include/linux/bio.h:243:2: note: in expansion of macro '__bio_for_each_segment' __bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter) ^ include/linux/blkdev.h:748:3: note: in expansion of macro 'bio_for_each_segment' bio_for_each_segment(bvl, _iter.bio, _iter.iter) ^ drivers/block/ps3disk.c:102:2: note: in expansion of macro 'rq_for_each_segment' rq_for_each_segment(bvec, req, iter) { ^ include/linux/bio.h:240:45: error: request for member 'bv_len' in something not a structure or union bio_advance_iter((bio), &(iter), (bvl).bv_len)) ^ include/linux/bio.h:243:2: note: in expansion of macro '__bio_for_each_segment' __bio_for_each_segment(bvl, bio, iter, (bio)->bi_iter) ^ include/linux/blkdev.h:748:3: note: in expansion of macro 'bio_for_each_segment' bio_for_each_segment(bvl, _iter.bio, _iter.iter) ^ drivers/block/ps3disk.c:102:2: note: in expansion of macro 'rq_for_each_segment' rq_for_each_segment(bvec, req, iter) { ^ In file included from block/blk-merge.c:6:0: block/blk-merge.c: In function '__blk_recalc_rq_segments': include/linux/bio.h:174:25: warning: 'bvprv.bv_len' may be used uninitialized in this function [-Wmaybe-uninitialized] ((bvec_to_phys((vec1)) + (vec1)->bv_len) == bvec_to_phys((vec2))) ^ block/blk-merge.c:15:21: note: 'bvprv.bv_len' was declared here struct bio_vec bv, bvprv; ^ In file included from block/blk-merge.c:6:0: include/linux/bio.h:154:55: warning: 'bvprv.bv_offset' may be used uninitialized in this function [-Wmaybe-uninitialized] #define bvec_to_phys(bv) (page_to_phys((bv)->bv_page) + (unsigned long) (bv)->bv_offset) ^ block/blk-merge.c:15:21: note: 'bvprv.bv_offset' was declared here struct bio_vec bv, bvprv; ^ In file included from arch/powerpc/include/asm/page.h:412:0, from arch/powerpc/include/asm/thread_info.h:34, from include/linux/thread_info.h:54, from include/linux/preempt.h:9, from include/linux/spinlock.h:50, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from block/blk-merge.c:5: include/asm-generic/memory_model.h:52:52: warning: 'bvprv.bv_page' may be used uninitialized in this function [-Wmaybe-uninitialized] #define __page_to_pfn(page) (unsigned long)((page) - vmemmap) ^ block/blk-merge.c:15:21: note: 'bvprv.bv_page' was declared here struct bio_vec bv, bvprv; ^ Some of this may be incomplete merge resolution on my part (help would be appreciated), but some seems to maybe need more work. I have used the block tree from next-20131031 for today. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx
Attachment:
pgp5sRKJI0xhB.pgp
Description: PGP signature