[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20070608165505.aa15fcdb.akpm@linux-foundation.org>
Date: Fri, 8 Jun 2007 16:55:05 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: ebiederm@...ssion.com (Eric W. Biederman)
Cc: "Serge E. Hallyn" <serge@...lyn.com>,
Albert Cahalan <acahalan@...il.com>,
linux-kernel@...r.kernel.org, linux-mm@...ck.org,
torvalds@...ux-foundation.org,
Badari Pulavarty <pbadari@...ibm.com>
Subject: Re: [PATCH] shm: Fix the filename of hugetlb sysv shared memory
On Fri, 08 Jun 2007 17:43:34 -0600
ebiederm@...ssion.com (Eric W. Biederman) wrote:
> Some user space tools need to identify SYSV shared memory when
> examining /proc/<pid>/maps. To do so they look for a block device
> with major zero, a dentry named SYSV<sysv key>, and having the minor of
> the internal sysv shared memory kernel mount.
>
> To help these tools and to make it easier for people just browsing
> /proc/<pid>/maps this patch modifies hugetlb sysv shared memory to
> use the SYSV<key> dentry naming convention.
>
> User space tools will still have to be aware that hugetlb sysv
> shared memory lives on a different internal kernel mount and so
> has a different block device minor number from the rest of sysv
> shared memory.
I assume this fix is preferred over Badari's? If so, why?
From: Badari Pulavarty <pbadari@...ibm.com>
shmid used to be stored as inode# for shared memory segments. Some of
the proc-ps tools use this from /proc/pid/maps. Recent cleanups
to newseg() changed it. This patch sets inode number back to shared
memory id to fix breakage.
Signed-off-by: Badari Pulavarty <pbadari@...ibm.com>
Cc: "Albert Cahalan" <acahalan@...il.com>
Cc: "Eric W. Biederman" <ebiederm@...ssion.com>
Signed-off-by: Andrew Morton <akpm@...ux-foundation.org>
---
ipc/shm.c | 5 +++++
1 files changed, 5 insertions(+)
diff -puN ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage ipc/shm.c
--- a/ipc/shm.c~restore-shmid-as-inode-to-fix-proc-pid-maps-abi-breakage
+++ a/ipc/shm.c
@@ -397,6 +397,11 @@ static int newseg (struct ipc_namespace
shp->shm_nattch = 0;
shp->id = shm_buildid(ns, id, shp->shm_perm.seq);
shp->shm_file = file;
+ /*
+ * shmid gets reported as "inode#" in /proc/pid/maps.
+ * proc-ps tools use this. Changing this will break them.
+ */
+ file->f_dentry->d_inode->i_ino = shp->id;
ns->shm_tot += numpages;
shm_unlock(shp);
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists