Received: by 10.223.148.5 with SMTP id 5csp6279578wrq; Wed, 17 Jan 2018 11:39:47 -0800 (PST) X-Google-Smtp-Source: ACJfBovJphNjoI187hlOJAcxf5VkaPR+e93XwCngk0gxd5Xu2tViJce4wEGjKNYcu94blyDGyCR2 X-Received: by 10.84.132.35 with SMTP id 32mr43241318ple.262.1516217987046; Wed, 17 Jan 2018 11:39:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516217987; cv=none; d=google.com; s=arc-20160816; b=krdaiFtCOxOzrPuicF5R6RdGJyhNCM+kdODITCOKSKKQNXnoQeNU9Zw791BA+BvvCG p97bEn3DPp4nGmyPQCe4BP7oJLRSzU36mIGTfL3bHtmwQcGhD3qutIhV6ZIFyvkWmg+6 eiq/97CYORgfiUI2C3xK+me2b/x+F3I8eZSuVegoRJdzOvafrTWnU8gOY3Rm/rI0nagO 7zrvO5AACUbf8XEp09mfvYJV/jgW5rZ1akiMD5j9Whq7h15094uwQqa3+bF80uFX+751 KAvj1M/+H5mJ2WFmulztM2jjStFw5mA+rfWVYY0Lk0HRTGdCp6T/kvEIPxSePgQ47dSt KfFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=y24Lcs57H4zvVRQERew6kdoS0xRLnU5XfbvZ53x9bjg=; b=t3OnY7TCeeCJM+hArLsaUI959AQz69jQ+BtoIf98doRbqgLHyKNWN/+EZKGwazaa2J PKhgrwVIVA+DBIzc8J/RWRjkey6BCTSXZUfYQNPiXEtCA5tXVRoPa7JoVVTHsr4eajqF VXmg0rGhuRHqyGrjw7DIvBRJYPp44lQOGSwfvyg5B7TjmGfznCgTxWfTRlzF6WnsR2Ah f3i8b7FNSUSDtMmZSksF5GnPshDHLoshaa8kOBD1T0MMj2///Nvvo0VaK7Y86ggleaFR rAwqpABsUz0oLpMME6qI7FP4ezAQD4bjcIU6uIftLq7Je4SEfv+FnjAU8qjGm8OjSYmo Dsvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=r7jcNHHK; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g17si4839548plo.357.2018.01.17.11.39.32; Wed, 17 Jan 2018 11:39:47 -0800 (PST) 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=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=r7jcNHHK; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753482AbeAQT20 (ORCPT + 99 others); Wed, 17 Jan 2018 14:28:26 -0500 Received: from bombadil.infradead.org ([65.50.211.133]:46343 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753201AbeAQT2V (ORCPT ); Wed, 17 Jan 2018 14:28:21 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=References:In-Reply-To:Message-Id: Date:Subject:Cc:To:From:Sender:Reply-To:MIME-Version:Content-Type: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=y24Lcs57H4zvVRQERew6kdoS0xRLnU5XfbvZ53x9bjg=; b=r7jcNHHKsHWh7yVEfJ+G2Pvtm YjAS5uaS9rairvtku+NJZJngyQ7ZdhKIjZqWctuKf7GXWVAOL6kIXqyAn8qNM0Ns+uTvral3hrTlU 6ny6AB2CLSE12ndx7Hk8p1H7yqGYLS1Lz2ILJbXxo+fHNyH4DqJ9oQMkCIC1DeFhnyTWjH942Jlbz FCxuX7blwh8HbSmBFJu6JbXQvUGjx4VjzaDb20J9tvVUuZqhYPS0VXR35YSPcADVTwR1H4q8dkf1+ g47VlnPBFY8rugYt7Czyji1c8614QcPbdqUanTyJ7f40L/0YaB+XvPGT0QQahKxQnAo0eOx4UeIRL 9YVY3fG0A==; Received: from 77.117.185.35.wireless.dyn.drei.com ([77.117.185.35] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.89 #1 (Red Hat Linux)) id 1ebtNj-00031E-Pk; Wed, 17 Jan 2018 19:28:20 +0000 From: Christoph Hellwig To: viro@zeniv.linux.org.uk Cc: Avi Kivity , linux-aio@kvack.org, linux-fsdevel@vger.kernel.org, netdev@vger.kernel.org, linux-api@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 10/36] fs: cleanup do_pollfd Date: Wed, 17 Jan 2018 20:27:16 +0100 Message-Id: <20180117192742.710-11-hch@lst.de> X-Mailer: git-send-email 2.14.2 In-Reply-To: <20180117192742.710-1-hch@lst.de> References: <20180117192742.710-1-hch@lst.de> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use straigline code with failure handling gotos instead of a lot of nested conditionals. Signed-off-by: Christoph Hellwig --- fs/select.c | 48 +++++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/fs/select.c b/fs/select.c index 4e1dccac2702..2ad66647f340 100644 --- a/fs/select.c +++ b/fs/select.c @@ -806,34 +806,32 @@ static inline __poll_t do_pollfd(struct pollfd *pollfd, poll_table *pwait, bool *can_busy_poll, __poll_t busy_flag) { - __poll_t mask; - int fd; - - mask = 0; - fd = pollfd->fd; - if (fd >= 0) { - struct fd f = fdget(fd); - mask = POLLNVAL; - if (f.file) { - /* userland u16 ->events contains POLL... bitmap */ - __poll_t filter = demangle_poll(pollfd->events) | - POLLERR | POLLHUP; - mask = DEFAULT_POLLMASK; - if (f.file->f_op->poll) { - pwait->_key = filter; - pwait->_key |= busy_flag; - mask = f.file->f_op->poll(f.file, pwait); - if (mask & busy_flag) - *can_busy_poll = true; - } - /* Mask out unneeded events. */ - mask &= filter; - fdput(f); - } + __poll_t mask = 0, filter; + struct fd f; + + if (pollfd->fd < 0) + goto out; + mask = POLLNVAL; + f = fdget(pollfd->fd); + if (!f.file) + goto out; + + /* userland u16 ->events contains POLL... bitmap */ + filter = demangle_poll(pollfd->events) | POLLERR | POLLHUP; + mask = DEFAULT_POLLMASK; + if (f.file->f_op->poll) { + pwait->_key = filter | busy_flag; + mask = f.file->f_op->poll(f.file, pwait); + if (mask & busy_flag) + *can_busy_poll = true; } + + /* Mask out unneeded events. */ + mask &= filter; + fdput(f); +out: /* ... and so does ->revents */ pollfd->revents = mangle_poll(mask); - return mask; } -- 2.14.2