diff options
author | jhb <jhb@FreeBSD.org> | 2007-10-25 16:53:35 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2007-10-25 16:53:35 +0000 |
commit | 48c9c853fbf0e4c197a166cd98f89bcfeddbf63e (patch) | |
tree | cdefc80bdc8746696fdcad74a5f856cb0a059a70 /sys/boot/i386 | |
parent | 281bc5f7fae193d23c4077cb5dda7768c7553462 (diff) | |
download | FreeBSD-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.c | 2 |
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) |