From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751062AbdBCP0R (ORCPT ); Fri, 3 Feb 2017 10:26:17 -0500 Received: from mx2.suse.de ([195.135.220.15]:36945 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750808AbdBCP0P (ORCPT ); Fri, 3 Feb 2017 10:26:15 -0500 Date: Fri, 3 Feb 2017 16:25:50 +0100 From: Jan Kara To: Fabian Frederick Cc: Jan Kara , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/3 linux-next] udf: simplify udf_ioctl() Message-ID: <20170203152550.GA16121@quack2.suse.cz> References: <20170124204836.22323-1-fabf@skynet.be> <20170124204836.22323-2-fabf@skynet.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170124204836.22323-2-fabf@skynet.be> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue 24-01-17 21:48:35, Fabian Frederick wrote: > "out" label was only returning error code. > > Signed-off-by: Fabian Frederick Thanks. I've taken this patch and squashed patch 3 into this one. Honza > --- > 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) > -- > 2.9.3 > > -- Jan Kara SUSE Labs, CR