mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull vfs pile (part one) from Al Viro: "Assorted stuff - cleaning namei.c up a bit, fixing ->d_name/->d_parent locking violations, etc. The most visible changes here are death of FS_REVAL_DOT (replaced with "has ->d_weak_revalidate()") and a new helper getting from struct file to inode. Some bits of preparation to xattr method interface changes. Misc patches by various people sent this cycle *and* ocfs2 fixes from several cycles ago that should've been upstream right then. PS: the next vfs pile will be xattr stuff." * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits) saner proc_get_inode() calling conventions proc: avoid extra pde_put() in proc_fill_super() fs: change return values from -EACCES to -EPERM fs/exec.c: make bprm_mm_init() static ocfs2/dlm: use GFP_ATOMIC inside a spin_lock ocfs2: fix possible use-after-free with AIO ocfs2: Fix oops in ocfs2_fast_symlink_readpage() code path get_empty_filp()/alloc_file() leave both ->f_pos and ->f_version zero target: writev() on single-element vector is pointless export kernel_write(), convert open-coded instances fs: encode_fh: return FILEID_INVALID if invalid fid_type kill f_vfsmnt vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op nfsd: handle vfs_getattr errors in acl protocol switch vfs_getattr() to struct path default SET_PERSONALITY() in linux/elf.h ceph: prepopulate inodes only when request is aborted d_hash_and_lookup(): export, switch open-coded instances 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() 9p: split dropping the acls from v9fs_set_create_acl() ...
This commit is contained in:
commit
d895cb1af1
383 changed files with 1276 additions and 1423 deletions
|
|
@ -383,7 +383,7 @@ static int lstats_open(struct inode *inode, struct file *file)
|
|||
static ssize_t lstats_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *offs)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
|
||||
if (!task)
|
||||
return -ESRCH;
|
||||
|
|
@ -602,7 +602,7 @@ static const struct inode_operations proc_def_inode_operations = {
|
|||
static ssize_t proc_info_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
unsigned long page;
|
||||
ssize_t length;
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
|
|
@ -668,7 +668,7 @@ static const struct file_operations proc_single_file_operations = {
|
|||
|
||||
static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
struct mm_struct *mm;
|
||||
|
||||
if (!task)
|
||||
|
|
@ -869,7 +869,7 @@ static const struct file_operations proc_environ_operations = {
|
|||
static ssize_t oom_adj_read(struct file *file, char __user *buf, size_t count,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
char buffer[PROC_NUMBUF];
|
||||
int oom_adj = OOM_ADJUST_MIN;
|
||||
size_t len;
|
||||
|
|
@ -916,7 +916,7 @@ static ssize_t oom_adj_write(struct file *file, const char __user *buf,
|
|||
goto out;
|
||||
}
|
||||
|
||||
task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
task = get_proc_task(file_inode(file));
|
||||
if (!task) {
|
||||
err = -ESRCH;
|
||||
goto out;
|
||||
|
|
@ -976,7 +976,7 @@ static const struct file_operations proc_oom_adj_operations = {
|
|||
static ssize_t oom_score_adj_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
char buffer[PROC_NUMBUF];
|
||||
short oom_score_adj = OOM_SCORE_ADJ_MIN;
|
||||
unsigned long flags;
|
||||
|
|
@ -1019,7 +1019,7 @@ static ssize_t oom_score_adj_write(struct file *file, const char __user *buf,
|
|||
goto out;
|
||||
}
|
||||
|
||||
task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
task = get_proc_task(file_inode(file));
|
||||
if (!task) {
|
||||
err = -ESRCH;
|
||||
goto out;
|
||||
|
|
@ -1067,7 +1067,7 @@ static const struct file_operations proc_oom_score_adj_operations = {
|
|||
static ssize_t proc_loginuid_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
ssize_t length;
|
||||
char tmpbuf[TMPBUFLEN];
|
||||
|
|
@ -1084,7 +1084,7 @@ static ssize_t proc_loginuid_read(struct file * file, char __user * buf,
|
|||
static ssize_t proc_loginuid_write(struct file * file, const char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
char *page, *tmp;
|
||||
ssize_t length;
|
||||
uid_t loginuid;
|
||||
|
|
@ -1142,7 +1142,7 @@ static const struct file_operations proc_loginuid_operations = {
|
|||
static ssize_t proc_sessionid_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
ssize_t length;
|
||||
char tmpbuf[TMPBUFLEN];
|
||||
|
|
@ -1165,7 +1165,7 @@ static const struct file_operations proc_sessionid_operations = {
|
|||
static ssize_t proc_fault_inject_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
char buffer[PROC_NUMBUF];
|
||||
size_t len;
|
||||
int make_it_fail;
|
||||
|
|
@ -1197,7 +1197,7 @@ static ssize_t proc_fault_inject_write(struct file * file,
|
|||
make_it_fail = simple_strtol(strstrip(buffer), &end, 0);
|
||||
if (*end)
|
||||
return -EINVAL;
|
||||
task = get_proc_task(file->f_dentry->d_inode);
|
||||
task = get_proc_task(file_inode(file));
|
||||
if (!task)
|
||||
return -ESRCH;
|
||||
task->make_it_fail = make_it_fail;
|
||||
|
|
@ -1237,7 +1237,7 @@ static ssize_t
|
|||
sched_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *offset)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct task_struct *p;
|
||||
|
||||
p = get_proc_task(inode);
|
||||
|
|
@ -1288,7 +1288,7 @@ static ssize_t
|
|||
sched_autogroup_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *offset)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct task_struct *p;
|
||||
char buffer[PROC_NUMBUF];
|
||||
int nice;
|
||||
|
|
@ -1343,7 +1343,7 @@ static const struct file_operations proc_pid_sched_autogroup_operations = {
|
|||
static ssize_t comm_write(struct file *file, const char __user *buf,
|
||||
size_t count, loff_t *offset)
|
||||
{
|
||||
struct inode *inode = file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(file);
|
||||
struct task_struct *p;
|
||||
char buffer[TASK_COMM_LEN];
|
||||
|
||||
|
|
@ -1711,7 +1711,7 @@ static int map_files_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
return -ECHILD;
|
||||
|
||||
if (!capable(CAP_SYS_ADMIN)) {
|
||||
status = -EACCES;
|
||||
status = -EPERM;
|
||||
goto out_notask;
|
||||
}
|
||||
|
||||
|
|
@ -1844,7 +1844,7 @@ static struct dentry *proc_map_files_lookup(struct inode *dir,
|
|||
struct dentry *result;
|
||||
struct mm_struct *mm;
|
||||
|
||||
result = ERR_PTR(-EACCES);
|
||||
result = ERR_PTR(-EPERM);
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
goto out;
|
||||
|
||||
|
|
@ -1900,7 +1900,7 @@ proc_map_files_readdir(struct file *filp, void *dirent, filldir_t filldir)
|
|||
ino_t ino;
|
||||
int ret;
|
||||
|
||||
ret = -EACCES;
|
||||
ret = -EPERM;
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
goto out;
|
||||
|
||||
|
|
@ -2146,7 +2146,7 @@ out_no_task:
|
|||
static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
char *p = NULL;
|
||||
ssize_t length;
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
|
|
@ -2167,7 +2167,7 @@ static ssize_t proc_pid_attr_read(struct file * file, char __user * buf,
|
|||
static ssize_t proc_pid_attr_write(struct file * file, const char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
char *page;
|
||||
ssize_t length;
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
|
|
@ -2256,7 +2256,7 @@ static const struct inode_operations proc_attr_dir_inode_operations = {
|
|||
static ssize_t proc_coredump_filter_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
struct mm_struct *mm;
|
||||
char buffer[PROC_NUMBUF];
|
||||
size_t len;
|
||||
|
|
@ -2308,7 +2308,7 @@ static ssize_t proc_coredump_filter_write(struct file *file,
|
|||
goto out_no_task;
|
||||
|
||||
ret = -ESRCH;
|
||||
task = get_proc_task(file->f_dentry->d_inode);
|
||||
task = get_proc_task(file_inode(file));
|
||||
if (!task)
|
||||
goto out_no_task;
|
||||
|
||||
|
|
@ -2618,6 +2618,7 @@ static void proc_flush_task_mnt(struct vfsmount *mnt, pid_t pid, pid_t tgid)
|
|||
|
||||
name.name = buf;
|
||||
name.len = snprintf(buf, sizeof(buf), "%d", pid);
|
||||
/* no ->d_hash() rejects on procfs */
|
||||
dentry = d_hash_and_lookup(mnt->mnt_root, &name);
|
||||
if (dentry) {
|
||||
shrink_dcache_parent(dentry);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ static ssize_t
|
|||
__proc_file_read(struct file *file, char __user *buf, size_t nbytes,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct inode * inode = file->f_path.dentry->d_inode;
|
||||
struct inode * inode = file_inode(file);
|
||||
char *page;
|
||||
ssize_t retval=0;
|
||||
int eof=0;
|
||||
|
|
@ -188,7 +188,7 @@ static ssize_t
|
|||
proc_file_read(struct file *file, char __user *buf, size_t nbytes,
|
||||
loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
ssize_t rv = -EIO;
|
||||
|
||||
spin_lock(&pde->pde_unload_lock);
|
||||
|
|
@ -209,7 +209,7 @@ static ssize_t
|
|||
proc_file_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
ssize_t rv = -EIO;
|
||||
|
||||
if (pde->write_proc) {
|
||||
|
|
@ -412,8 +412,7 @@ static const struct dentry_operations proc_dentry_operations =
|
|||
struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
|
||||
struct dentry *dentry)
|
||||
{
|
||||
struct inode *inode = NULL;
|
||||
int error = -ENOENT;
|
||||
struct inode *inode;
|
||||
|
||||
spin_lock(&proc_subdir_lock);
|
||||
for (de = de->subdir; de ; de = de->next) {
|
||||
|
|
@ -422,22 +421,16 @@ struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *dir,
|
|||
if (!memcmp(dentry->d_name.name, de->name, de->namelen)) {
|
||||
pde_get(de);
|
||||
spin_unlock(&proc_subdir_lock);
|
||||
error = -ENOMEM;
|
||||
inode = proc_get_inode(dir->i_sb, de);
|
||||
goto out_unlock;
|
||||
if (!inode)
|
||||
return ERR_PTR(-ENOMEM);
|
||||
d_set_d_op(dentry, &proc_dentry_operations);
|
||||
d_add(dentry, inode);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
spin_unlock(&proc_subdir_lock);
|
||||
out_unlock:
|
||||
|
||||
if (inode) {
|
||||
d_set_d_op(dentry, &proc_dentry_operations);
|
||||
d_add(dentry, inode);
|
||||
return NULL;
|
||||
}
|
||||
if (de)
|
||||
pde_put(de);
|
||||
return ERR_PTR(error);
|
||||
return ERR_PTR(-ENOENT);
|
||||
}
|
||||
|
||||
struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
|
||||
|
|
@ -460,7 +453,7 @@ int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent,
|
|||
{
|
||||
unsigned int ino;
|
||||
int i;
|
||||
struct inode *inode = filp->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
int ret = 0;
|
||||
|
||||
ino = inode->i_ino;
|
||||
|
|
@ -522,7 +515,7 @@ out:
|
|||
|
||||
int proc_readdir(struct file *filp, void *dirent, filldir_t filldir)
|
||||
{
|
||||
struct inode *inode = filp->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
|
||||
return proc_readdir_de(PDE(inode), filp, dirent, filldir);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ void pde_users_dec(struct proc_dir_entry *pde)
|
|||
|
||||
static loff_t proc_reg_llseek(struct file *file, loff_t offset, int whence)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
loff_t rv = -EINVAL;
|
||||
loff_t (*llseek)(struct file *, loff_t, int);
|
||||
|
||||
|
|
@ -179,7 +179,7 @@ static loff_t proc_reg_llseek(struct file *file, loff_t offset, int whence)
|
|||
|
||||
static ssize_t proc_reg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
ssize_t rv = -EIO;
|
||||
ssize_t (*read)(struct file *, char __user *, size_t, loff_t *);
|
||||
|
||||
|
|
@ -201,7 +201,7 @@ static ssize_t proc_reg_read(struct file *file, char __user *buf, size_t count,
|
|||
|
||||
static ssize_t proc_reg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
ssize_t rv = -EIO;
|
||||
ssize_t (*write)(struct file *, const char __user *, size_t, loff_t *);
|
||||
|
||||
|
|
@ -223,7 +223,7 @@ static ssize_t proc_reg_write(struct file *file, const char __user *buf, size_t
|
|||
|
||||
static unsigned int proc_reg_poll(struct file *file, struct poll_table_struct *pts)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
unsigned int rv = DEFAULT_POLLMASK;
|
||||
unsigned int (*poll)(struct file *, struct poll_table_struct *);
|
||||
|
||||
|
|
@ -245,7 +245,7 @@ static unsigned int proc_reg_poll(struct file *file, struct poll_table_struct *p
|
|||
|
||||
static long proc_reg_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
long rv = -ENOTTY;
|
||||
long (*ioctl)(struct file *, unsigned int, unsigned long);
|
||||
|
||||
|
|
@ -268,7 +268,7 @@ static long proc_reg_unlocked_ioctl(struct file *file, unsigned int cmd, unsigne
|
|||
#ifdef CONFIG_COMPAT
|
||||
static long proc_reg_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
long rv = -ENOTTY;
|
||||
long (*compat_ioctl)(struct file *, unsigned int, unsigned long);
|
||||
|
||||
|
|
@ -291,7 +291,7 @@ static long proc_reg_compat_ioctl(struct file *file, unsigned int cmd, unsigned
|
|||
|
||||
static int proc_reg_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
{
|
||||
struct proc_dir_entry *pde = PDE(file->f_path.dentry->d_inode);
|
||||
struct proc_dir_entry *pde = PDE(file_inode(file));
|
||||
int rv = -EIO;
|
||||
int (*mmap)(struct file *, struct vm_area_struct *);
|
||||
|
||||
|
|
@ -445,12 +445,9 @@ static const struct file_operations proc_reg_file_ops_no_compat = {
|
|||
|
||||
struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
|
||||
{
|
||||
struct inode * inode;
|
||||
struct inode *inode = iget_locked(sb, de->low_ino);
|
||||
|
||||
inode = iget_locked(sb, de->low_ino);
|
||||
if (!inode)
|
||||
return NULL;
|
||||
if (inode->i_state & I_NEW) {
|
||||
if (inode && (inode->i_state & I_NEW)) {
|
||||
inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
|
||||
PROC_I(inode)->pde = de;
|
||||
|
||||
|
|
@ -482,10 +479,12 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
|
|||
} else
|
||||
pde_put(de);
|
||||
return inode;
|
||||
}
|
||||
}
|
||||
|
||||
int proc_fill_super(struct super_block *s)
|
||||
{
|
||||
struct inode *root_inode;
|
||||
|
||||
s->s_flags |= MS_NODIRATIME | MS_NOSUID | MS_NOEXEC;
|
||||
s->s_blocksize = 1024;
|
||||
s->s_blocksize_bits = 10;
|
||||
|
|
@ -494,11 +493,17 @@ int proc_fill_super(struct super_block *s)
|
|||
s->s_time_gran = 1;
|
||||
|
||||
pde_get(&proc_root);
|
||||
s->s_root = d_make_root(proc_get_inode(s, &proc_root));
|
||||
if (s->s_root)
|
||||
return 0;
|
||||
root_inode = proc_get_inode(s, &proc_root);
|
||||
if (!root_inode) {
|
||||
printk(KERN_ERR "proc_fill_super: get root inode failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
printk("proc_read_super: get root inode failed\n");
|
||||
pde_put(&proc_root);
|
||||
return -ENOMEM;
|
||||
s->s_root = d_make_root(root_inode);
|
||||
if (!s->s_root) {
|
||||
printk(KERN_ERR "proc_fill_super: allocate dentry failed\n");
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
|
|||
file = region->vm_file;
|
||||
|
||||
if (file) {
|
||||
struct inode *inode = region->vm_file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(region->vm_file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ static int proc_tgid_net_readdir(struct file *filp, void *dirent,
|
|||
struct net *net;
|
||||
|
||||
ret = -EINVAL;
|
||||
net = get_proc_task_net(filp->f_path.dentry->d_inode);
|
||||
net = get_proc_task_net(file_inode(filp));
|
||||
if (net != NULL) {
|
||||
ret = proc_readdir_de(net->proc_net, filp, dirent, filldir);
|
||||
put_net(net);
|
||||
|
|
|
|||
|
|
@ -478,7 +478,7 @@ out:
|
|||
static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
|
||||
size_t count, loff_t *ppos, int write)
|
||||
{
|
||||
struct inode *inode = filp->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
struct ctl_table_header *head = grab_header(inode);
|
||||
struct ctl_table *table = PROC_I(inode)->sysctl_entry;
|
||||
ssize_t error;
|
||||
|
|
@ -542,7 +542,7 @@ static int proc_sys_open(struct inode *inode, struct file *filp)
|
|||
|
||||
static unsigned int proc_sys_poll(struct file *filp, poll_table *wait)
|
||||
{
|
||||
struct inode *inode = filp->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
struct ctl_table_header *head = grab_header(inode);
|
||||
struct ctl_table *table = PROC_I(inode)->sysctl_entry;
|
||||
unsigned int ret = DEFAULT_POLLMASK;
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
|
|||
const char *name = NULL;
|
||||
|
||||
if (file) {
|
||||
struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(vma->vm_file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
|
||||
|
|
@ -743,7 +743,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf,
|
|||
return rv;
|
||||
if (type < CLEAR_REFS_ALL || type > CLEAR_REFS_MAPPED)
|
||||
return -EINVAL;
|
||||
task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
task = get_proc_task(file_inode(file));
|
||||
if (!task)
|
||||
return -ESRCH;
|
||||
mm = get_task_mm(task);
|
||||
|
|
@ -1015,7 +1015,7 @@ static int pagemap_hugetlb_range(pte_t *pte, unsigned long hmask,
|
|||
static ssize_t pagemap_read(struct file *file, char __user *buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
|
||||
struct task_struct *task = get_proc_task(file_inode(file));
|
||||
struct mm_struct *mm;
|
||||
struct pagemapread pm;
|
||||
int ret = -ESRCH;
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
|
|||
file = vma->vm_file;
|
||||
|
||||
if (file) {
|
||||
struct inode *inode = vma->vm_file->f_path.dentry->d_inode;
|
||||
struct inode *inode = file_inode(vma->vm_file);
|
||||
dev = inode->i_sb->s_dev;
|
||||
ino = inode->i_ino;
|
||||
pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
|
||||
|
|
|
|||
Loading…
Reference in a new issue