From: Fabian Frederick <fabf@skynet.be>
To: Jan Kara <jack@suse.com>
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 [thread overview]
Message-ID: <20170124204836.22323-2-fabf@skynet.be> (raw)
In-Reply-To: <20170124204836.22323-1-fabf@skynet.be>
"out" label was only returning error code.
Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
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
next prev parent reply other threads:[~2017-01-24 20:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-24 20:48 [PATCH 1/3 linux-next] udf: fix ioctl errors Fabian Frederick
2017-01-24 20:48 ` Fabian Frederick [this message]
2017-02-03 15:25 ` [PATCH 2/3 linux-next] udf: simplify udf_ioctl() Jan Kara
2017-01-24 20:48 ` [PATCH 3/3 linux-next] udf: remove else after return in udf_ioctl() Fabian Frederick
2017-02-03 15:19 ` [PATCH 1/3 linux-next] udf: fix ioctl errors Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170124204836.22323-2-fabf@skynet.be \
--to=fabf@skynet.be \
--cc=jack@suse.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).