From 31da12e2b8f65ba4211326e0e3a0a70c3cb73309 Mon Sep 17 00:00:00 2001 From: Swen Schillig Date: Thu, 14 Jan 2010 17:19:00 +0100 Subject: [PATCH] --- yaml --- r: 180007 b: refs/heads/master c: b8f08645f80a0c93246f3539ce53d3cae6a91fa0 h: refs/heads/master i: 180005: 6002adafc5aa570612e2d6004b516b212b4d34b8 180003: 08b0b28306e82089e31ea54d7fc39e1d62d2092f 179999: 0f20d0d4ef94e45258b8c75d12eb4773763c9701 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_transport_fc.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 0e05dcc43654..cb100c6f937f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9e2ab1fabdbd88669fdebd368fb5cda32ad5438d +refs/heads/master: b8f08645f80a0c93246f3539ce53d3cae6a91fa0 diff --git a/trunk/drivers/scsi/scsi_transport_fc.c b/trunk/drivers/scsi/scsi_transport_fc.c index ddfcecd5099f..653f22a8deb9 100644 --- a/trunk/drivers/scsi/scsi_transport_fc.c +++ b/trunk/drivers/scsi/scsi_transport_fc.c @@ -3527,7 +3527,10 @@ fc_bsg_job_timeout(struct request *req) if (!done && i->f->bsg_timeout) { /* call LLDD to abort the i/o as it has timed out */ err = i->f->bsg_timeout(job); - if (err) + if (err == -EAGAIN) { + job->ref_cnt--; + return BLK_EH_RESET_TIMER; + } else if (err) printk(KERN_ERR "ERROR: FC BSG request timeout - LLD " "abort failed with status %d\n", err); }