| From 59ac9c078141b8fd0186c0b18660a1b2c24e724e Mon Sep 17 00:00:00 2001 |
| From: Bart Van Assche <bart.vanassche@sandisk.com> |
| Date: Thu, 4 May 2017 15:50:47 -0700 |
| Subject: [PATCH] target/fileio: Fix zero-length READ and WRITE handling |
| |
| commit 59ac9c078141b8fd0186c0b18660a1b2c24e724e upstream. |
| |
| This patch fixes zero-length READ and WRITE handling in target/FILEIO, |
| which was broken a long time back by: |
| |
| Since: |
| |
| commit d81cb44726f050d7cf1be4afd9cb45d153b52066 |
| Author: Paolo Bonzini <pbonzini@redhat.com> |
| Date: Mon Sep 17 16:36:11 2012 -0700 |
| |
| target: go through normal processing for all zero-length commands |
| |
| which moved zero-length READ and WRITE completion out of target-core, |
| to doing submission into backend driver code. |
| |
| To address this, go ahead and invoke target_complete_cmd() for any |
| non negative return value in fd_do_rw(). |
| |
| Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> |
| Reviewed-by: Hannes Reinecke <hare@suse.com> |
| Reviewed-by: Christoph Hellwig <hch@lst.de> |
| Cc: Andy Grover <agrover@redhat.com> |
| Cc: David Disseldorp <ddiss@suse.de> |
| Cc: <stable@vger.kernel.org> # v3.7+ |
| Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org> |
| |
| diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c |
| index 1bf6c31e4c21..73b8f93a5fef 100644 |
| --- a/drivers/target/target_core_file.c |
| +++ b/drivers/target/target_core_file.c |
| @@ -608,8 +608,7 @@ fd_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents, |
| if (ret < 0) |
| return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE; |
| |
| - if (ret) |
| - target_complete_cmd(cmd, SAM_STAT_GOOD); |
| + target_complete_cmd(cmd, SAM_STAT_GOOD); |
| return 0; |
| } |
| |
| -- |
| 2.12.0 |
| |