summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2007-10-25 16:53:35 +0000
committerjhb <jhb@FreeBSD.org>2007-10-25 16:53:35 +0000
commit48c9c853fbf0e4c197a166cd98f89bcfeddbf63e (patch)
treecdefc80bdc8746696fdcad74a5f856cb0a059a70 /sys/boot/i386
parent281bc5f7fae193d23c4077cb5dda7768c7553462 (diff)
downloadFreeBSD-src-48c9c853fbf0e4c197a166cd98f89bcfeddbf63e.zip
FreeBSD-src-48c9c853fbf0e4c197a166cd98f89bcfeddbf63e.tar.gz
Break out of the I/O retry loop as soon as an I/O operation succeeds rather
than always retrying operations three times. Submitted by: nyan
Diffstat (limited to 'sys/boot/i386')
-rw-r--r--sys/boot/i386/libi386/biosdisk.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/boot/i386/libi386/biosdisk.c b/sys/boot/i386/libi386/biosdisk.c
index 5e96af4..bd4d9d7 100644
--- a/sys/boot/i386/libi386/biosdisk.c
+++ b/sys/boot/i386/libi386/biosdisk.c
@@ -1251,6 +1251,8 @@ bd_io(struct open_disk *od, daddr_t dblk, int blks, caddr_t dest, int write)
result = bd_edd_io(od, dblk, x, xp, write);
else
result = bd_chs_io(od, dblk, x, xp, write);
+ if (result == 0)
+ break;
}
if (write)
OpenPOWER on IntegriCloud