From: Jeff Garzik Nobody ever checks the return value of submit_bh(), and submit_bh() is the only caller that checks the submit_bio() return value. This changes the kernel I/O submission path -- a fast path -- so this cleanup is also a microoptimization. --- 25-akpm/drivers/block/ll_rw_blk.c | 3 +-- 25-akpm/fs/buffer.c | 4 ++-- 25-akpm/include/linux/buffer_head.h | 2 +- 25-akpm/include/linux/fs.h | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff -puN drivers/block/ll_rw_blk.c~kill-submit_bhbio-return-value drivers/block/ll_rw_blk.c --- 25/drivers/block/ll_rw_blk.c~kill-submit_bhbio-return-value 2004-04-14 00:39:36.693290624 -0700 +++ 25-akpm/drivers/block/ll_rw_blk.c 2004-04-14 00:39:36.704288952 -0700 @@ -2429,7 +2429,7 @@ EXPORT_SYMBOL(generic_make_request); * interfaces, @bio must be presetup and ready for I/O. * */ -int submit_bio(int rw, struct bio *bio) +void submit_bio(int rw, struct bio *bio) { int count = bio_sectors(bio); @@ -2451,7 +2451,6 @@ int submit_bio(int rw, struct bio *bio) } generic_make_request(bio); - return 1; } EXPORT_SYMBOL(submit_bio); diff -puN fs/buffer.c~kill-submit_bhbio-return-value fs/buffer.c --- 25/fs/buffer.c~kill-submit_bhbio-return-value 2004-04-14 00:39:36.695290320 -0700 +++ 25-akpm/fs/buffer.c 2004-04-14 00:39:36.706288648 -0700 @@ -2684,7 +2684,7 @@ static int end_bio_bh_io_sync(struct bio return 0; } -int submit_bh(int rw, struct buffer_head * bh) +void submit_bh(int rw, struct buffer_head * bh) { struct bio *bio; @@ -2722,7 +2722,7 @@ int submit_bh(int rw, struct buffer_head bio->bi_end_io = end_bio_bh_io_sync; bio->bi_private = bh; - return submit_bio(rw, bio); + submit_bio(rw, bio); } /** diff -puN include/linux/buffer_head.h~kill-submit_bhbio-return-value include/linux/buffer_head.h --- 25/include/linux/buffer_head.h~kill-submit_bhbio-return-value 2004-04-14 00:39:36.697290016 -0700 +++ 25-akpm/include/linux/buffer_head.h 2004-04-14 00:39:36.707288496 -0700 @@ -177,7 +177,7 @@ void free_buffer_head(struct buffer_head void FASTCALL(unlock_buffer(struct buffer_head *bh)); void ll_rw_block(int, int, struct buffer_head * bh[]); void sync_dirty_buffer(struct buffer_head *bh); -int submit_bh(int, struct buffer_head *); +void submit_bh(int, struct buffer_head *); void write_boundary_block(struct block_device *bdev, sector_t bblock, unsigned blocksize); diff -puN include/linux/fs.h~kill-submit_bhbio-return-value include/linux/fs.h --- 25/include/linux/fs.h~kill-submit_bhbio-return-value 2004-04-14 00:39:36.699289712 -0700 +++ 25-akpm/include/linux/fs.h 2004-04-14 00:39:36.708288344 -0700 @@ -1359,7 +1359,7 @@ extern struct file * get_empty_filp(void extern void file_move(struct file *f, struct list_head *list); extern void file_kill(struct file *f); struct bio; -extern int submit_bio(int, struct bio *); +extern void submit_bio(int, struct bio *); extern int bdev_read_only(struct block_device *); extern int set_blocksize(struct block_device *, int); extern int sb_set_blocksize(struct super_block *, int); _