Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 055d3747 authored by NeilBrown's avatar NeilBrown
Browse files

md/raid10: fix failure when trying to repair a read error.



commit 58c54fcc
     md/raid10: handle further errors during fix_read_error better.

in 3.1 added "r10_sync_page_io" which takes an IO size in sectors.
But we were passing the IO size in bytes!!!
This resulting in bio_add_page failing, and empty request being sent
down, and a consequent BUG_ON in scsi_lib.

[fix missing space in error message at same time]

This fix is suitable for 3.1.y and later.

Cc: stable@vger.kernel.org
Reported-by: default avatarChristian Balzer <chibi@gol.com>
Signed-off-by: default avatarNeilBrown <neilb@suse.de>
parent 5f066c63
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2310,7 +2310,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
			if (r10_sync_page_io(rdev,
					     r10_bio->devs[sl].addr +
					     sect,
					     s<<9, conf->tmppage, WRITE)
					     s, conf->tmppage, WRITE)
			    == 0) {
				/* Well, this device is dead */
				printk(KERN_NOTICE
@@ -2349,7 +2349,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
			switch (r10_sync_page_io(rdev,
					     r10_bio->devs[sl].addr +
					     sect,
					     s<<9, conf->tmppage,
					     s, conf->tmppage,
						 READ)) {
			case 0:
				/* Well, this device is dead */