From patchwork Tue Jan 24 20:48:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabian Frederick X-Patchwork-Id: 9535883 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 5C63E6042D for ; Tue, 24 Jan 2017 20:52:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4ECA926C2F for ; Tue, 24 Jan 2017 20:52:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 425DC26E55; Tue, 24 Jan 2017 20:52:14 +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=unavailable 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 C465B26C2F for ; Tue, 24 Jan 2017 20:52:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750913AbdAXUv7 (ORCPT ); Tue, 24 Jan 2017 15:51:59 -0500 Received: from mailrelay110.isp.belgacom.be ([195.238.20.137]:31313 "EHLO mailrelay110.isp.belgacom.be" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750904AbdAXUv6 (ORCPT ); Tue, 24 Jan 2017 15:51:58 -0500 X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2AXAwDXvIdY/+M5QFdeHQEFAQsBgmpKA?= =?us-ascii?q?QEBAQEfQYEojVtykT4BknWCD4INhiICgiFAGAECAQEBAQEBAWIohGoGJy8jEBk?= =?us-ascii?q?4OR4GE4kNEbALOoQQhk0BAQgohkuPHQWJApJLkV8NkG5Iki8fOIErGhiGdD01h?= =?us-ascii?q?3kBAQE?= X-IPAS-Result: =?us-ascii?q?A2AXAwDXvIdY/+M5QFdeHQEFAQsBgmpKAQEBAQEfQYEojVt?= =?us-ascii?q?ykT4BknWCD4INhiICgiFAGAECAQEBAQEBAWIohGoGJy8jEBk4OR4GE4kNEbALO?= =?us-ascii?q?oQQhk0BAQgohkuPHQWJApJLkV8NkG5Iki8fOIErGhiGdD01h3kBAQE?= Received: from 227.57-64-87.adsl-dyn.isp.belgacom.be (HELO localhost.localdomain) ([87.64.57.227]) by relay.skynet.be with ESMTP; 24 Jan 2017 21:48:46 +0100 From: Fabian Frederick To: Jan Kara Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, fabf@skynet.be Subject: [PATCH 2/3 linux-next] udf: simplify udf_ioctl() Date: Tue, 24 Jan 2017 21:48:35 +0100 Message-Id: <20170124204836.22323-2-fabf@skynet.be> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170124204836.22323-1-fabf@skynet.be> References: <20170124204836.22323-1-fabf@skynet.be> Sender: linux-fsdevel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP "out" label was only returning error code. Signed-off-by: Fabian Frederick --- fs/udf/file.c | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/fs/udf/file.c b/fs/udf/file.c index d44b3cb..00931fa 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -176,57 +176,48 @@ long udf_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { struct inode *inode = file_inode(filp); long old_block, new_block; - int result = -EINVAL; + int result; if (inode_permission(inode, MAY_READ) != 0) { udf_debug("no permission to access inode %lu\n", inode->i_ino); - result = -EPERM; - goto out; + return -EPERM; } if (!arg && ((cmd == UDF_GETVOLIDENT) || (cmd == UDF_GETEASIZE) || (cmd == UDF_RELOCATE_BLOCKS) || (cmd == UDF_GETEABLOCK))) { udf_debug("invalid argument to udf_ioctl\n"); - result = -VM_FAULT_SIGBUS; - goto out; + return -VM_FAULT_SIGBUS; } switch (cmd) { case UDF_GETVOLIDENT: if (copy_to_user((char __user *)arg, UDF_SB(inode->i_sb)->s_volume_ident, 32)) - result = -EFAULT; + return -EFAULT; else - result = 0; - goto out; + return 0; case UDF_RELOCATE_BLOCKS: - if (!capable(CAP_SYS_ADMIN)) { - result = -EPERM; - goto out; - } - if (get_user(old_block, (long __user *)arg)) { - result = -EFAULT; - goto out; - } + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (get_user(old_block, (long __user *)arg)) + return -EFAULT; + result = udf_relocate_blocks(inode->i_sb, old_block, &new_block); if (result == 0) result = put_user(new_block, (long __user *)arg); - goto out; + + return result; case UDF_GETEASIZE: - result = put_user(UDF_I(inode)->i_lenEAttr, (int __user *)arg); - goto out; + return put_user(UDF_I(inode)->i_lenEAttr, (int __user *)arg); case UDF_GETEABLOCK: - result = copy_to_user((char __user *)arg, + return copy_to_user((char __user *)arg, UDF_I(inode)->i_ext.i_data, UDF_I(inode)->i_lenEAttr) ? -EFAULT : 0; - goto out; default: return -ENOIOCTLCMD; } - -out: - return result; } static int udf_release_file(struct inode *inode, struct file *filp)