diff options
author | Craig Rodrigues <rodrigc@FreeBSD.org> | 2008-11-05 19:40:36 +0000 |
---|---|---|
committer | Craig Rodrigues <rodrigc@FreeBSD.org> | 2008-11-05 19:40:36 +0000 |
commit | e506f34b242bf0c35d970e861bf71d43a4fcd7f9 (patch) | |
tree | 28fc9ff6f44c6da849fa460b61a76ea3ffa88205 /sys | |
parent | c65e3b18543e36d7dc4804541d64820c440fbb60 (diff) |
Merge latest DTrace changes from Perforce.
Approved by: jb
Notes
Notes:
svn path=/head/; revision=184700
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_exec.c | 9 | ||||
-rw-r--r-- | sys/kern/vfs_syscalls.c | 15 | ||||
-rw-r--r-- | sys/modules/zfs/Makefile | 1 |
3 files changed, 20 insertions, 5 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index 9ca2f96a27f0..02f9f2e4cce5 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -388,8 +388,6 @@ do_execve(td, args, mac_p) imgp->image_header = NULL; - SDT_PROBE(proc, kernel, , exec, args->fname, 0, 0, 0, 0 ); - /* * Translate the file name. namei() returns a vnode pointer * in ni_vp amoung other things. @@ -403,6 +401,8 @@ do_execve(td, args, mac_p) | MPSAFE | AUDITVNODE1, UIO_SYSSPACE, args->fname, td); } + SDT_PROBE(proc, kernel, , exec, args->fname, 0, 0, 0, 0 ); + interpret: if (args->fname != NULL) { error = namei(ndp); @@ -800,8 +800,9 @@ interpret: vfs_mark_atime(imgp->vp, td->td_ucred); -done1: + SDT_PROBE(proc, kernel, , exec_success, args->fname, 0, 0, 0, 0); +done1: /* * Free any resources malloc'd earlier that we didn't use. */ @@ -812,8 +813,6 @@ done1: crfree(newcred); VOP_UNLOCK(imgp->vp, 0); - SDT_PROBE(proc, kernel, , exec_success, args->fname, 0, 0, 0, 0); - /* * Handle deferred decrement of ref counts. */ diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index d30a94fc29ad..ad71a89eee92 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" +#include "opt_kdtrace.h" #include "opt_ktrace.h" #include "opt_mac.h" @@ -58,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include <sys/filio.h> #include <sys/limits.h> #include <sys/linker.h> +#include <sys/sdt.h> #include <sys/stat.h> #include <sys/sx.h> #include <sys/unistd.h> @@ -82,6 +84,14 @@ __FBSDID("$FreeBSD$"); #include <vm/vm_page.h> #include <vm/uma.h> +SDT_PROVIDER_DEFINE(vfs); +SDT_PROBE_DEFINE(vfs, , stat, mode); +SDT_PROBE_ARGTYPE(vfs, , stat, mode, 0, "char *"); +SDT_PROBE_ARGTYPE(vfs, , stat, mode, 1, "int"); +SDT_PROBE_DEFINE(vfs, , stat, reg); +SDT_PROBE_ARGTYPE(vfs, , stat, reg, 0, "char *"); +SDT_PROBE_ARGTYPE(vfs, , stat, reg, 1, "int"); + static int chroot_refuse_vdir_fds(struct filedesc *fdp); static int getutimes(const struct timeval *, enum uio_seg, struct timespec *); static int setfown(struct thread *td, struct vnode *, uid_t, gid_t); @@ -2334,6 +2344,11 @@ kern_statat(struct thread *td, int flag, int fd, char *path, return (error); vfslocked = NDHASGIANT(&nd); error = vn_stat(nd.ni_vp, &sb, td->td_ucred, NOCRED, td); + if (!error) { + SDT_PROBE(vfs, , stat, mode, path, sb.st_mode, 0, 0, 0); + if (S_ISREG(sb.st_mode)) + SDT_PROBE(vfs, , stat, reg, path, pathseg, 0, 0, 0); + } NDFREE(&nd, NDF_ONLY_PNBUF); vput(nd.ni_vp); VFS_UNLOCK_GIANT(vfslocked); diff --git a/sys/modules/zfs/Makefile b/sys/modules/zfs/Makefile index 0f7e825e8556..0cd4361e4c65 100644 --- a/sys/modules/zfs/Makefile +++ b/sys/modules/zfs/Makefile @@ -78,6 +78,7 @@ CFLAGS+=-I${.CURDIR}/../.. CFLAGS+=-I${SUNW}/common/zfs CFLAGS+=-I${SUNW}/common CFLAGS+=-I${.CURDIR}/../../../include +CFLAGS+=-DBUILDING_ZFS #CFLAGS+=-DDEBUG=1 #DEBUG_FLAGS=-g |