diff options
author | kc28005 <none@none> | 2007-04-30 13:20:49 -0700 |
---|---|---|
committer | kc28005 <none@none> | 2007-04-30 13:20:49 -0700 |
commit | 2900c43ad2343025a360dae18e319bd6a57827e0 (patch) | |
tree | cec518f47cdd6c3627b6d927f3d48532fe1aac3c | |
parent | fd00680555e8f4173d02435c3b015e23cb232c49 (diff) | |
download | illumos-joyent-2900c43ad2343025a360dae18e319bd6a57827e0.tar.gz |
6545564 machine hang when uata tries to read bad block resulting in additional corrupted blocks/files.
-rw-r--r-- | usr/src/uts/sun/io/dada/targets/dad.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/src/uts/sun/io/dada/targets/dad.c b/usr/src/uts/sun/io/dada/targets/dad.c index 069ff3dbea..eba181b9f3 100644 --- a/usr/src/uts/sun/io/dada/targets/dad.c +++ b/usr/src/uts/sun/io/dada/targets/dad.c @@ -2723,7 +2723,9 @@ dcd_handle_incomplete(struct dcd_disk *un, struct buf *bp) case CMD_INCOMPLETE: action = dcd_check_error(un, bp); DCD_DO_ERRSTATS(un, dcd_transerrs); - (void) dcd_reset_disk(un, pkt); + if (action == COMMAND_HARD_ERROR) { + (void) dcd_reset_disk(un, pkt); + } break; case CMD_FATAL: |