On Fri, 08 Jun 2007 17:43:34 -0600 [EMAIL PROTECTED] (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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> Cc: "Albert Cahalan" <[EMAIL PROTECTED]> Cc: "Eric W. Biederman" <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> --- 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 [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/