Merge tag 'pull-stable-struct_fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull 'struct fd' updates from Al Viro: "Just the 'struct fd' layout change, with conversion to accessor helpers" * tag 'pull-stable-struct_fd' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: add struct fd constructors, get rid of __to_fd() struct fd: representation change introduce fd_file(), convert all accessors to it.
This commit is contained in:
@@ -969,10 +969,10 @@ static inline int perf_cgroup_connect(int fd, struct perf_event *event,
|
||||
struct fd f = fdget(fd);
|
||||
int ret = 0;
|
||||
|
||||
if (!f.file)
|
||||
if (!fd_file(f))
|
||||
return -EBADF;
|
||||
|
||||
css = css_tryget_online_from_dir(f.file->f_path.dentry,
|
||||
css = css_tryget_online_from_dir(fd_file(f)->f_path.dentry,
|
||||
&perf_event_cgrp_subsys);
|
||||
if (IS_ERR(css)) {
|
||||
ret = PTR_ERR(css);
|
||||
@@ -6001,10 +6001,10 @@ static const struct file_operations perf_fops;
|
||||
static inline int perf_fget_light(int fd, struct fd *p)
|
||||
{
|
||||
struct fd f = fdget(fd);
|
||||
if (!f.file)
|
||||
if (!fd_file(f))
|
||||
return -EBADF;
|
||||
|
||||
if (f.file->f_op != &perf_fops) {
|
||||
if (fd_file(f)->f_op != &perf_fops) {
|
||||
fdput(f);
|
||||
return -EBADF;
|
||||
}
|
||||
@@ -6064,7 +6064,7 @@ static long _perf_ioctl(struct perf_event *event, unsigned int cmd, unsigned lon
|
||||
ret = perf_fget_light(arg, &output);
|
||||
if (ret)
|
||||
return ret;
|
||||
output_event = output.file->private_data;
|
||||
output_event = fd_file(output)->private_data;
|
||||
ret = perf_event_set_output(event, output_event);
|
||||
fdput(output);
|
||||
} else {
|
||||
@@ -12665,7 +12665,7 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
struct perf_event_attr attr;
|
||||
struct perf_event_context *ctx;
|
||||
struct file *event_file = NULL;
|
||||
struct fd group = {NULL, 0};
|
||||
struct fd group = EMPTY_FD;
|
||||
struct task_struct *task = NULL;
|
||||
struct pmu *pmu;
|
||||
int event_fd;
|
||||
@@ -12740,7 +12740,7 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
err = perf_fget_light(group_fd, &group);
|
||||
if (err)
|
||||
goto err_fd;
|
||||
group_leader = group.file->private_data;
|
||||
group_leader = fd_file(group)->private_data;
|
||||
if (flags & PERF_FLAG_FD_OUTPUT)
|
||||
output_event = group_leader;
|
||||
if (flags & PERF_FLAG_FD_NO_GROUP)
|
||||
|
||||
Reference in New Issue
Block a user