mirror of
https://github.com/torvalds/linux.git
synced 2026-05-31 18:43:33 +02:00
switch procfs from d_set_d_op() to d_splice_alias_ops()
Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
790fa81b8c
commit
ec169ef86b
|
|
@ -2704,8 +2704,7 @@ static struct dentry *proc_pident_instantiate(struct dentry *dentry,
|
|||
inode->i_fop = p->fop;
|
||||
ei->op = p->op;
|
||||
pid_update_inode(task, inode);
|
||||
d_set_d_op(dentry, &pid_dentry_operations);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry, &pid_dentry_operations);
|
||||
}
|
||||
|
||||
static struct dentry *proc_pident_lookup(struct inode *dir,
|
||||
|
|
@ -3501,8 +3500,7 @@ static struct dentry *proc_pid_instantiate(struct dentry * dentry,
|
|||
set_nlink(inode, nlink_tgid);
|
||||
pid_update_inode(task, inode);
|
||||
|
||||
d_set_d_op(dentry, &pid_dentry_operations);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry, &pid_dentry_operations);
|
||||
}
|
||||
|
||||
struct dentry *proc_pid_lookup(struct dentry *dentry, unsigned int flags)
|
||||
|
|
@ -3804,8 +3802,7 @@ static struct dentry *proc_task_instantiate(struct dentry *dentry,
|
|||
set_nlink(inode, nlink_tid);
|
||||
pid_update_inode(task, inode);
|
||||
|
||||
d_set_d_op(dentry, &pid_dentry_operations);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry, &pid_dentry_operations);
|
||||
}
|
||||
|
||||
static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry, unsigned int flags)
|
||||
|
|
|
|||
|
|
@ -255,10 +255,10 @@ struct dentry *proc_lookup_de(struct inode *dir, struct dentry *dentry,
|
|||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
if (de->flags & PROC_ENTRY_FORCE_LOOKUP)
|
||||
d_set_d_op(dentry, &proc_net_dentry_ops);
|
||||
else
|
||||
d_set_d_op(dentry, &proc_misc_dentry_ops);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry,
|
||||
&proc_net_dentry_ops);
|
||||
return d_splice_alias_ops(inode, dentry,
|
||||
&proc_misc_dentry_ops);
|
||||
}
|
||||
read_unlock(&proc_subdir_lock);
|
||||
return ERR_PTR(-ENOENT);
|
||||
|
|
|
|||
|
|
@ -413,7 +413,6 @@ static inline void pde_force_lookup(struct proc_dir_entry *pde)
|
|||
static inline struct dentry *proc_splice_unmountable(struct inode *inode,
|
||||
struct dentry *dentry, const struct dentry_operations *d_ops)
|
||||
{
|
||||
d_set_d_op(dentry, d_ops);
|
||||
dont_mount(dentry);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry, d_ops);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -111,8 +111,7 @@ static struct dentry *proc_ns_instantiate(struct dentry *dentry,
|
|||
ei->ns_ops = ns_ops;
|
||||
pid_update_inode(task, inode);
|
||||
|
||||
d_set_d_op(dentry, &pid_dentry_operations);
|
||||
return d_splice_alias(inode, dentry);
|
||||
return d_splice_alias_ops(inode, dentry, &pid_dentry_operations);
|
||||
}
|
||||
|
||||
static int proc_ns_dir_readdir(struct file *file, struct dir_context *ctx)
|
||||
|
|
|
|||
|
|
@ -540,9 +540,8 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
|
|||
goto out;
|
||||
}
|
||||
|
||||
d_set_d_op(dentry, &proc_sys_dentry_operations);
|
||||
inode = proc_sys_make_inode(dir->i_sb, h ? h : head, p);
|
||||
err = d_splice_alias(inode, dentry);
|
||||
err = d_splice_alias_ops(inode, dentry, &proc_sys_dentry_operations);
|
||||
|
||||
out:
|
||||
if (h)
|
||||
|
|
@ -699,9 +698,9 @@ static bool proc_sys_fill_cache(struct file *file,
|
|||
return false;
|
||||
if (d_in_lookup(child)) {
|
||||
struct dentry *res;
|
||||
d_set_d_op(child, &proc_sys_dentry_operations);
|
||||
inode = proc_sys_make_inode(dir->d_sb, head, table);
|
||||
res = d_splice_alias(inode, child);
|
||||
res = d_splice_alias_ops(inode, child,
|
||||
&proc_sys_dentry_operations);
|
||||
d_lookup_done(child);
|
||||
if (unlikely(res)) {
|
||||
dput(child);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user