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 08:54:15 -0600 |
commit | d8705f11d89cfabf4a9f0ea234d4809b22abb33e (patch) | |
tree | e1ce54ec1f01fc9d2f77fd9c730b87167ac02219 | |
parent | e339c1a7c09ef736dca7b3a4353c7742557d9f8f (diff) | |
download | op-kernel-dev-d8705f11d89cfabf4a9f0ea234d4809b22abb33e.zip op-kernel-dev-d8705f11d89cfabf4a9f0ea234d4809b22abb33e.tar.gz |
[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>
-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 e495d38..d892768 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) case 0x07: /* operation in progress */ case 0x08: /* Long write in progress */ case 0x09: /* self test in progress */ + case 0x14: /* space allocation in progress */ action = ACTION_DELAYED_RETRY; break; default: |