From 7c733a6e7f1caa59c25830eac1d00913a5c3064a Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sat, 9 Jun 2012 01:16:59 -0400 Subject: get rid of magic in proc_namespace.c don't rely on proc_mounts->m being the first field; container_of() is there for purpose. No need to bother with ->private, while we are at it - the same container_of will do nicely. Signed-off-by: Al Viro (cherry picked from commit 6ce6e24e72233073c8ead9419fc5040d44803dae) --- fs/namespace.c | 6 +++--- fs/proc/base.c | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) (limited to 'fs') diff --git a/fs/namespace.c b/fs/namespace.c index 0fd3f8a0ecf..f334285ecdb 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -900,7 +900,7 @@ EXPORT_SYMBOL(replace_mount_options); /* iterator */ static void *m_start(struct seq_file *m, loff_t *pos) { - struct proc_mounts *p = m->private; + struct proc_mounts *p = proc_mounts(m); down_read(&namespace_sem); return seq_list_start(&p->ns->list, *pos); @@ -908,7 +908,7 @@ static void *m_start(struct seq_file *m, loff_t *pos) static void *m_next(struct seq_file *m, void *v, loff_t *pos) { - struct proc_mounts *p = m->private; + struct proc_mounts *p = proc_mounts(m); return seq_list_next(v, &p->ns->list, pos); } @@ -1022,7 +1022,7 @@ const struct seq_operations mounts_op = { static int show_mountinfo(struct seq_file *m, void *v) { - struct proc_mounts *p = m->private; + struct proc_mounts *p = proc_mounts(m); struct vfsmount *mnt = list_entry(v, struct vfsmount, mnt_list); struct super_block *sb = mnt->mnt_sb; struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt }; diff --git a/fs/proc/base.c b/fs/proc/base.c index 49a048dcf05..c72b0a19f94 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -624,7 +624,6 @@ static int mounts_open_common(struct inode *inode, struct file *file, if (ret) goto err_free; - p->m.private = p; p->ns = ns; p->root = root; p->event = ns->event; @@ -643,7 +642,7 @@ static int mounts_open_common(struct inode *inode, struct file *file, static int mounts_release(struct inode *inode, struct file *file) { - struct proc_mounts *p = file->private_data; + struct proc_mounts *p = proc_mounts(file->private_data); path_put(&p->root); put_mnt_ns(p->ns); return seq_release(inode, file); @@ -651,7 +650,7 @@ static int mounts_release(struct inode *inode, struct file *file) static unsigned mounts_poll(struct file *file, poll_table *wait) { - struct proc_mounts *p = file->private_data; + struct proc_mounts *p = proc_mounts(file->private_data); unsigned res = POLLIN | POLLRDNORM; poll_wait(file, &p->ns->poll, wait); -- cgit v1.2.3