diff options
author | Boaz Harrosh <bharrosh@panasas.com> | 2009-11-16 20:48:38 +0200 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-04 12:01:47 -0600 |
commit | aa9fffbe2c4db4557248c5c626a85bf3c7867044 (patch) | |
tree | e719a15e185a35f09e489a5a9f2a72d73c598dd1 /.gitignore | |
parent | eff21490c91f981126f0ead3c081dde4f425d387 (diff) | |
download | op-kernel-dev-aa9fffbe2c4db4557248c5c626a85bf3c7867044.zip op-kernel-dev-aa9fffbe2c4db4557248c5c626a85bf3c7867044.tar.gz |
[SCSI] libosd: Error handling revamped
Administer some love to the osd_req_decode_sense function
* Fix a bad bug with osd_req_decode_sense(). If there was no scsi
residual, .i.e the request never reached the target, then all the
osd_sense_info members where garbage.
* Add grossly missing in/out_resid to osd_sense_info and fill them in
properly.
* Define an osd_err_priority enum which divides the possible errors into
7 categories in ascending severity. Each category is also assigned a
Linux return code translation.
Analyze the different osd/scsi/block returned errors and set the
proper osd_err_priority and Linux return code accordingly.
* extra check a few situations so not to get stuck with inconsistent
error view. Example an empty residual with an error code, and other
places ...
Lots of libosd's osd_req_decode_sense clients had this logic in some
form or another. Consolidate all these into one place that should
actually know about osd returns. Thous translating it to a more
abstract error.
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions