lkml.org 
[lkml]   [2011]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/2] block: remove support for bio remapping from ->make_request
On Sun, 11 Sep 2011 10:51:29 -0400 Christoph Hellwig <hch@infradead.org>
wrote:

> There is very little benefit in allowing to let a ->make_request instance update
> the bios device and sector and loop around it in __generic_make_request when
> we can archive the same through calling generic_make_request from the driver
> and letting the loop in generic_make_request handle it.

Completely agree - I like this change!

>
> Note that various drivers got the return value from ->make_request and returned
> non-zero values for errors.

:-(

A diff-stat would have been nice... I think I've found all 'my' files though.



> Index: linux-2.6/drivers/md/faulty.c
> ===================================================================
> --- linux-2.6.orig/drivers/md/faulty.c 2011-09-08 12:01:53.000000000 +0200
> +++ linux-2.6/drivers/md/faulty.c 2011-09-08 12:05:58.602773802 +0200
> @@ -169,7 +169,7 @@ static void add_sector(conf_t *conf, sec
> conf->nfaults = n+1;
> }
>
> -static int make_request(mddev_t *mddev, struct bio *bio)
> +static void make_request(mddev_t *mddev, struct bio *bio)
> {
> conf_t *conf = mddev->private;
> int failit = 0;
> @@ -181,7 +181,7 @@ static int make_request(mddev_t *mddev,
> * just fail immediately
> */
> bio_endio(bio, -EIO);
> - return 0;
> + return;
> }
>
> if (check_sector(conf, bio->bi_sector, bio->bi_sector+(bio->bi_size>>9),
> @@ -214,12 +214,11 @@ static int make_request(mddev_t *mddev,
> b->bi_bdev = conf->rdev->bdev;
> b->bi_private = bio;
> b->bi_end_io = faulty_fail;
> - generic_make_request(b);
> - return 0;
> } else {
> bio->bi_bdev = conf->rdev->bdev;
> - return 1;
> }
> +
> + generic_make_request(b);
> }

If the 'else' branch was taken, we need to generic_make_request(bio).
And 'b' isn't even declared at this level.
So at the end of the 'then' branch, add
bio = b;
and make the final call
generic_make_request(bio);


Changes to these files:
> Index: linux-2.6/drivers/md/linear.c
> Index: linux-2.6/drivers/md/multipath.c
> Index: linux-2.6/drivers/md/raid0.c
> Index: linux-2.6/drivers/md/raid1.c
> Index: linux-2.6/drivers/md/raid10.c
> Index: linux-2.6/drivers/md/raid5.c
> Index: linux-2.6/drivers/md/md.h
> Index: linux-2.6/drivers/md/md.c

Acked-by: NeilBrown <neilb@suse.de>

Thanks,
NeilBrown


\
 
 \ /
  Last update: 2011-09-12 05:27    [W:0.090 / U:0.864 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site