diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2009-11-26 12:00:41 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2009-12-10 09:54:15 -0500 |
commit | d8705f11d89cfabf4a9f0ea234d4809b22abb33e (patch) | |
tree | e1ce54ec1f01fc9d2f77fd9c730b87167ac02219 /drivers/scsi/scsi_lib.c | |
parent | e339c1a7c09ef736dca7b3a4353c7742557d9f8f (diff) |
[SCSI] Correctly handle thin provisioning write error
A thin provisioned device may temporarily be out of sufficient
allocation units to fulfill a write request. In that case it will
return a space allocation in progress error. Wait a bit and retry the
write.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/scsi_lib.c')
-rw-r--r-- | drivers/scsi/scsi_lib.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index e495d3813948..d8927681ec88 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -859,6 +859,7 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
859 | case 0x07: /* operation in progress */ | 859 | case 0x07: /* operation in progress */ |
860 | case 0x08: /* Long write in progress */ | 860 | case 0x08: /* Long write in progress */ |
861 | case 0x09: /* self test in progress */ | 861 | case 0x09: /* self test in progress */ |
862 | case 0x14: /* space allocation in progress */ | ||
862 | action = ACTION_DELAYED_RETRY; | 863 | action = ACTION_DELAYED_RETRY; |
863 | break; | 864 | break; |
864 | default: | 865 | default: |