[SCSI] Correctly handle thin provisioning write error
authorMartin K. Petersen <martin.petersen@oracle.com>
Thu, 26 Nov 2009 17:00:41 +0000 (12:00 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 10 Dec 2009 14:54:15 +0000 (08:54 -0600)
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>
drivers/scsi/scsi_lib.c

index e495d38..d892768 100644 (file)
@@ -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: