From patchwork Mon Apr 24 15:35:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 9696611 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 60A8960113 for ; Mon, 24 Apr 2017 15:35:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5239828236 for ; Mon, 24 Apr 2017 15:35:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 471F3283FD; Mon, 24 Apr 2017 15:35:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B435828236 for ; Mon, 24 Apr 2017 15:35:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S971825AbdDXPfj (ORCPT ); Mon, 24 Apr 2017 11:35:39 -0400 Received: from verein.lst.de ([213.95.11.211]:57850 "EHLO newverein.lst.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S971774AbdDXPfh (ORCPT ); Mon, 24 Apr 2017 11:35:37 -0400 Received: by newverein.lst.de (Postfix, from userid 2407) id BFA877F338; Mon, 24 Apr 2017 17:35:35 +0200 (CEST) Date: Mon, 24 Apr 2017 17:35:35 +0200 From: Christoph Hellwig To: damien.lemoal@wdc.com Cc: linux-scsi@vger.kernel.org, "Martin K . Petersen" , Bart Van Assche , Hannes Reinecke , Christoph Hellwig Subject: Re: [PATCH v2 3/7] sd: Cleanup sd_done sense data handling Message-ID: <20170424153535.GE895@lst.de> References: <20170424075115.30337-1-damien.lemoal@wdc.com> <20170424075115.30337-4-damien.lemoal@wdc.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170424075115.30337-4-damien.lemoal@wdc.com> User-Agent: Mutt/1.5.17 (2007-11-01) Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP I would just use a switch and kill the op and unmap variables entirely, e.g. something like the patch below: --- From: Christoph Hellwig Subject: sd: Cleanup sd_done sense data handling Use a switch for the sense key, and remove two pointless variables that are only used once. Signed-off-by: Christoph Hellwig diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 8cf34a8e3eea..eec695107c99 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1866,8 +1866,6 @@ static int sd_done(struct scsi_cmnd *SCpnt) struct request *req = SCpnt->request; int sense_valid = 0; int sense_deferred = 0; - unsigned char op = SCpnt->cmnd[0]; - unsigned char unmap = SCpnt->cmnd[1] & 8; switch (req_op(req)) { case REQ_OP_DISCARD: @@ -1941,19 +1939,21 @@ static int sd_done(struct scsi_cmnd *SCpnt) good_bytes = sd_completed_bytes(SCpnt); break; case ILLEGAL_REQUEST: - if (sshdr.asc == 0x10) /* DIX: Host detected corruption */ + switch (sshdr.asc) { + case 0x10: /* DIX: Host detected corruption */ good_bytes = sd_completed_bytes(SCpnt); - /* INVALID COMMAND OPCODE or INVALID FIELD IN CDB */ - if (sshdr.asc == 0x20 || sshdr.asc == 0x24) { - switch (op) { + break; + case 0x20: /* INVALID COMMAND OPCODE */ + case 0x24: /* INVALID FIELD IN CDB */ + switch (SCpnt->cmnd[0]) { case UNMAP: sd_config_discard(sdkp, SD_LBP_DISABLE); break; case WRITE_SAME_16: case WRITE_SAME: - if (unmap) + if (SCpnt->cmnd[1] & 8) { sd_config_discard(sdkp, SD_LBP_DISABLE); - else { + } else { sdkp->device->no_write_same = 1; sd_config_write_same(sdkp); @@ -1961,6 +1961,7 @@ static int sd_done(struct scsi_cmnd *SCpnt) req->__data_len = blk_rq_bytes(req); req->rq_flags |= RQF_QUIET; } + break; } } break;