[PATCH 2/3 linux-next] udf: simplify udf_ioctl()

From: Fabian Frederick
Date: Tue Jan 24 2017 - 15:52:05 EST


"out" label was only returning error code.

Signed-off-by: Fabian Frederick <fabf@xxxxxxxxx>
---
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