Received: by 10.192.165.148 with SMTP id m20csp1397008imm; Thu, 10 May 2018 10:02:03 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoV2BTxRvuPX2kD29qsRbRLNXN6L5ObQYKPuUp92qkpNSXXKOHMdj7/OJC5x/T9BEtwExWM X-Received: by 2002:a17:902:7488:: with SMTP id h8-v6mr2138653pll.124.1525971723306; Thu, 10 May 2018 10:02:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525971723; cv=none; d=google.com; s=arc-20160816; b=uN8Eh9FOfJmjCvoaGaVLwQQ1paXClJLx0fs89twm71je4FuRrj6f2rya8BZMieoMqF mzqtRAd5colVgYb2X/gi3dPZ+zLe7Q7Bt+UvCCWLIQdWQ6wL6XLVuGElAeOEw4g99GaX IKUJQlFE5cB/8dwR0+QT1hPvtmN37nAGvkbHYvEp+YRSo0e4ETATUTH7r8R8ylHQFGhK NSmHHGGlQqq3TL7kkMPnij3kGG6qb3JdHJQYCl8+hWvKh2QeZ9LksQkyozEl58Mb2yHM gJ0nKrsKwKLFRNZhf5midz7r3fSbHEkNf9/9RbmcTScl7RmzeRAQcVIxyGbgEg4BnjdH GtVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=0dMmb/YaFhN3fhjTlFVU1/VVB0e3BiYnSis7AQ+Uy6E=; b=C0GADNG7xv+Go7j53fV+phQzsXt27pQEkTB40MN8El11+oMsMtaXARvWcmhrZ5wkP0 QVH8+OOhefPm4uVpD037O0BqEe6d8EsVOdnbFjo8lmwvjTcF7o6X8Vo0Um4orFPj+p/Q 91EAKJhkGnljA0sFJXDtSX+mIdBU/zg3KlzaB5x+g3fCrbAq0lZQVpWkygeTuzPDY8W6 MFrHe5a4TrR4BT/BwVu+VSYHWyEIv7CelrFWiGBcUIhTLGvUKdNCMSLADNvFkE7rRH3v eL4EPVyFYCR+tu/HkaXWKxW0jufVPA5kmyl7Fu0lEF5JdimtHlCkbW/tkb5FUF+OMHJK wiYQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=BbMKBeRw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q84-v6si1026187pgq.91.2018.05.10.10.01.44; Thu, 10 May 2018 10:02:03 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=BbMKBeRw; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966536AbeEJRBh (ORCPT + 99 others); Thu, 10 May 2018 13:01:37 -0400 Received: from mail-ot0-f194.google.com ([74.125.82.194]:34170 "EHLO mail-ot0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966267AbeEJRBf (ORCPT ); Thu, 10 May 2018 13:01:35 -0400 Received: by mail-ot0-f194.google.com with SMTP id i5-v6so3111861otf.1 for ; Thu, 10 May 2018 10:01:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=0dMmb/YaFhN3fhjTlFVU1/VVB0e3BiYnSis7AQ+Uy6E=; b=BbMKBeRwwAD8BG8Pr2JfwbibQQniFSuUHPG0aKG7ndm31F/dw288fgkx4DLTqfBJbE kslIPkySVjGGqiLgFtLABvuwQSiBl+cjM1oTQXTpMR+Jw+0HrZXwnFXweDphPxcvL4qW HWSzj6b8B7XoWVOC5hH5QhSHaJcx6Q8ROAAHacBieoILTWiHlFNEjUPnCjbswJwejgUt 5ryJ3XWPmVQN4qUMMt+cfOOtbf2+Z1xq5JK+QpfnB3mge2IRCvdmlmK3KUc2Yo7i7ys7 VjOGuIMEjDVmfiAEdgr4uFGhMcwe3SYIIWsVdNlh2d43hokMnwtuWy3CJIjovU3CU1Mb YIUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=0dMmb/YaFhN3fhjTlFVU1/VVB0e3BiYnSis7AQ+Uy6E=; b=pqyBFN54lkhrzeRuXLC4omTe73OTbALHlvd8ChH4CtsKgR7fD2GPI0lYFV+mq82388 WqZxammELV0QJwDRqbJbEJtMzhhQ6mhjnYfTrFtUo6C0/TBdc8MkkqgNDNN7UqYgB//y Ebirb9WGr6bePzigUrr1eXfu1SLJkM7glyvBl2dRYfTj46LoOQoqRqNdHTAWzklEhhs6 2SYB5pyruSWJ0xITy0hS+/ko7v6Uo5iv/H7D2ba42Q/sqlqqjA6RHsAnz8U6DbuR8qy9 r03mtLjTG/wDQOwe7jD2hwybdr40X7E/GSV/LSSdo9LI/W0ZmVtxEx79qAY89V9P6FbN TCoA== X-Gm-Message-State: ALKqPwd9LuQLVCevXjVnVrqHBVftFmqSuUYtXiSU0k7SJYu9Dz9PM1uV S+mIUAaAZRkceqqDpPzBalbx3OyHlxk= X-Received: by 2002:a9d:2221:: with SMTP id o30-v6mr1560069ota.327.1525971694637; Thu, 10 May 2018 10:01:34 -0700 (PDT) Received: from nuclearis2_1.gtech (c-98-201-114-184.hsd1.tx.comcast.net. [98.201.114.184]) by smtp.gmail.com with ESMTPSA id p23-v6sm623608ota.45.2018.05.10.10.01.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 10 May 2018 10:01:33 -0700 (PDT) Subject: Re: [PATCH] nvme-pci: Avoid use of goto in nvme_reset_work() To: Keith Busch Cc: linux-nvme@lists.infradead.org, alex_gagniuc@dellteam.com, Austin.Bolen@dell.com, Shyam.Iyer@dell.com, Jens Axboe , Christoph Hellwig , Sagi Grimberg , linux-kernel@vger.kernel.org References: <20180510164645.19559-1-mr.nuke.me@gmail.com> <20180510170038.GA4556@localhost.localdomain> From: "Alex G." Message-ID: <5ca7d8f1-d983-0379-b98f-2d5bb17e0a85@gmail.com> Date: Thu, 10 May 2018 12:01:33 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <20180510170038.GA4556@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/10/2018 12:00 PM, Keith Busch wrote: > On Thu, May 10, 2018 at 11:46:33AM -0500, Alexandru Gagniuc wrote: >> This patch started as a challenge from Keith relating to code >> structuring with goto vs return. I think the final result improves >> readability on two counts: >> First, it clarifies the separation between work struct and nvme_dev. >> Second, it makes it clearer what error is being passed on: >> 'return -ENODEV' vs 'goto out', where 'result' happens to be -ENODEV >> >> CC: Keith Busch >> Signed-off-by: Alexandru Gagniuc > > Ah, that's just wrapping a function that has a single out. The challenge > is to find a better mechanism than 'goto' to unwind a failure that has > multiple outs, like nvme_probe(). The same principle applies there too. It might have to be wrapped in several chunks, and it will likely be more readable. Am I supposed to bite and refactor that too? Alex