From 11d7b3fe654ad5f97479b803b79a0e1fde4e33b5 Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 24 Apr 2008 12:50:23 -0500 Subject: Made kernel 2.6.25 changes in task_finder.c. 2008-04-24 David Smith * task_finder.c (__stp_get_mm_path): Made kernel 2.6.25 changes. --- runtime/ChangeLog | 4 ++++ runtime/task_finder.c | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'runtime') diff --git a/runtime/ChangeLog b/runtime/ChangeLog index e3c1ea8d..9197f4ec 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,7 @@ +2008-04-24 David Smith + + * task_finder.c (__stp_get_mm_path): Made kernel 2.6.25 changes. + 2008-04-16 David Smith * task_finder.c (__stp_get_mm_path): Made kernel 2.6.18 changes. diff --git a/runtime/task_finder.c b/runtime/task_finder.c index d0a9a40f..ffbc3d0c 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -153,11 +153,12 @@ __stp_get_mm_path(struct mm_struct *mm, char *buf, int buflen) vma = vma->vm_next; } if (vma) { - struct vfsmount *mnt = mntget(vma->vm_file->f_vfsmnt); - struct dentry *dentry = dget(vma->vm_file->f_dentry); - rc = d_path(dentry, mnt, buf, buflen); - dput(dentry); - mntput(mnt); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25) + rc = d_path(vma->vm_file->f_dentry, vma->vm_file->f_vfsmnt, + buf, buflen); +#else + rc = d_path(vma->vm_file, buf, buflen); +#endif } else { *buf = '\0'; -- cgit From f72154b33e67069cd7c308d24255574b9fbacb1d Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 24 Apr 2008 13:55:19 -0400 Subject: PR6451: avoid one class of staprun shutdown deadlock (module/.ctl filehandle = 0) --- runtime/staprun/ChangeLog | 6 ++++++ runtime/staprun/common.c | 2 +- runtime/staprun/ctl.c | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'runtime') diff --git a/runtime/staprun/ChangeLog b/runtime/staprun/ChangeLog index f1abd736..9e0ccb73 100644 --- a/runtime/staprun/ChangeLog +++ b/runtime/staprun/ChangeLog @@ -1,3 +1,9 @@ +2008-04-24 Frank Ch. Eigler + + PR 6451. + * common.c (control_channel): Initialize to -1. + * ctl.c (close_ctl_channel): Tolerate fd=0. + 2008-04-22 Martin Hunt * cap.c (init_cap): Detect capabilities failure and diff --git a/runtime/staprun/common.c b/runtime/staprun/common.c index f8fc418c..b716d27f 100644 --- a/runtime/staprun/common.c +++ b/runtime/staprun/common.c @@ -31,7 +31,7 @@ char *modname = NULL; char *modpath = ""; char *modoptions[MAXMODOPTIONS]; -int control_channel = 0; +int control_channel = -1; /* NB: fd==0 possible */ void parse_args(int argc, char **argv) { diff --git a/runtime/staprun/ctl.c b/runtime/staprun/ctl.c index 15c5c3d3..4597bf72 100644 --- a/runtime/staprun/ctl.c +++ b/runtime/staprun/ctl.c @@ -46,8 +46,8 @@ int init_ctl_channel(const char *name, int verb) void close_ctl_channel(void) { - if (control_channel > 0) { + if (control_channel >= 0) { close(control_channel); - control_channel = 0; + control_channel = -1; } } -- cgit From 261e29dbb7b0a60e8b1e251e653082651ec58def Mon Sep 17 00:00:00 2001 From: Srinivasa Date: Fri, 25 Apr 2008 09:20:53 -0500 Subject: Fixed task_finder.c kernel 2.6.25 change. 2008-04-25 David Smith From Srinivasa * task_finder.c (__stp_get_mm_path): Fixed kernel 2.6.25 change. --- runtime/ChangeLog | 5 +++++ runtime/task_finder.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'runtime') diff --git a/runtime/ChangeLog b/runtime/ChangeLog index 9197f4ec..a2e49822 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,8 @@ +2008-04-25 David Smith + + From Srinivasa + * task_finder.c (__stp_get_mm_path): Fixed kernel 2.6.25 change. + 2008-04-24 David Smith * task_finder.c (__stp_get_mm_path): Made kernel 2.6.25 changes. diff --git a/runtime/task_finder.c b/runtime/task_finder.c index ffbc3d0c..aafe9c32 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -157,7 +157,7 @@ __stp_get_mm_path(struct mm_struct *mm, char *buf, int buflen) rc = d_path(vma->vm_file->f_dentry, vma->vm_file->f_vfsmnt, buf, buflen); #else - rc = d_path(vma->vm_file, buf, buflen); + rc = d_path(&(vma->vm_file->f_path), buf, buflen); #endif } else { -- cgit