mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
fdget(), more trivial conversions
all failure exits prior to fdget() leave the scope, all matching fdput() are immediately followed by leaving the scope. [xfs_ioc_commit_range() chunk moved here as well] Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -411,15 +411,14 @@ static int cgroupstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||
struct nlattr *na;
|
||||
size_t size;
|
||||
u32 fd;
|
||||
struct fd f;
|
||||
|
||||
na = info->attrs[CGROUPSTATS_CMD_ATTR_FD];
|
||||
if (!na)
|
||||
return -EINVAL;
|
||||
|
||||
fd = nla_get_u32(info->attrs[CGROUPSTATS_CMD_ATTR_FD]);
|
||||
f = fdget(fd);
|
||||
if (!fd_file(f))
|
||||
CLASS(fd, f)(fd);
|
||||
if (fd_empty(f))
|
||||
return 0;
|
||||
|
||||
size = nla_total_size(sizeof(struct cgroupstats));
|
||||
@@ -427,14 +426,13 @@ static int cgroupstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||
rc = prepare_reply(info, CGROUPSTATS_CMD_NEW, &rep_skb,
|
||||
size);
|
||||
if (rc < 0)
|
||||
goto err;
|
||||
return rc;
|
||||
|
||||
na = nla_reserve(rep_skb, CGROUPSTATS_TYPE_CGROUP_STATS,
|
||||
sizeof(struct cgroupstats));
|
||||
if (na == NULL) {
|
||||
nlmsg_free(rep_skb);
|
||||
rc = -EMSGSIZE;
|
||||
goto err;
|
||||
return -EMSGSIZE;
|
||||
}
|
||||
|
||||
stats = nla_data(na);
|
||||
@@ -443,14 +441,10 @@ static int cgroupstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
|
||||
rc = cgroupstats_build(stats, fd_file(f)->f_path.dentry);
|
||||
if (rc < 0) {
|
||||
nlmsg_free(rep_skb);
|
||||
goto err;
|
||||
return rc;
|
||||
}
|
||||
|
||||
rc = send_reply(rep_skb, info);
|
||||
|
||||
err:
|
||||
fdput(f);
|
||||
return rc;
|
||||
return send_reply(rep_skb, info);
|
||||
}
|
||||
|
||||
static int cmd_attr_register_cpumask(struct genl_info *info)
|
||||
|
||||
Reference in New Issue
Block a user