summaryrefslogtreecommitdiffstats
path: root/ipc/shm.c
diff options
context:
space:
mode:
authorBadari Pulavarty <pbadari@us.ibm.com>2007-06-16 10:15:59 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-06-16 13:16:15 -0700
commit30475cc12a50816f290828fb7e3cd7036cd622df (patch)
tree3195db2642d29568057a11a62889a9a8b67a9cfe /ipc/shm.c
parentdd08c40e3e23f868eb0e49f638eb208736ec7e66 (diff)
downloadlinux-30475cc12a50816f290828fb7e3cd7036cd622df.tar.bz2
Restore shmid as inode# to fix /proc/pid/maps ABI breakage
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@us.ibm.com> Cc: "Albert Cahalan" <acahalan@gmail.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'ipc/shm.c')
-rw-r--r--ipc/shm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/ipc/shm.c b/ipc/shm.c
index 4fefbad7096d..02faa54dbf5a 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -397,6 +397,11 @@ static int newseg (struct ipc_namespace *ns, key_t key, int shmflg, size_t size)
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);