From: Andrew Morton It looks like c99-style definition-after-statement, but it isn't, but it could easily become so. Cc: Andreas Gruenbacher Cc: NeilBrown Signed-off-by: Andrew Morton --- fs/namespace.c | 6 ++++-- fs/proc/base.c | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff -puN fs/namespace.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy fs/namespace.c --- a/fs/namespace.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy +++ a/fs/namespace.c @@ -379,8 +379,9 @@ static int show_vfsmnt(struct seq_file * { 0, NULL } }; struct proc_fs_info *fs_infop; + char *path; - char *path = d_path(mnt->mnt_root, mnt, page, PAGE_SIZE); + path = d_path(mnt->mnt_root, mnt, page, PAGE_SIZE); if (IS_ERR(path) || *path != '/') return err; @@ -416,8 +417,9 @@ static int show_vfsstat(struct seq_file void *page = container_of(m, struct proc_mounts, m)->page; struct vfsmount *mnt = v; int err = 0; + char *path; - char *path = d_path(mnt->mnt_root, mnt, page, PAGE_SIZE); + path = d_path(mnt->mnt_root, mnt, page, PAGE_SIZE); if (IS_ERR(path) || *path != '/') return err; /* error or path unreachable from chroot */ diff -puN fs/proc/base.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy fs/proc/base.c --- a/fs/proc/base.c~fix-__d_path-for-lazy-unmounts-and-make-it-unambiguous-tidy +++ a/fs/proc/base.c @@ -415,6 +415,7 @@ static int mounts_release(struct inode * struct proc_mounts *p = container_of(file->private_data, struct proc_mounts, m); struct mnt_namespace *ns = p->m.private; + free_page((unsigned long)p->page); put_mnt_ns(ns); return seq_release(inode, file); _