PERFORCE change 147847 for review

John Birrell jb at FreeBSD.org
Tue Aug 19 22:38:26 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=147847

Change 147847 by jb at freebsd3 on 2008/08/19 22:38:19

	Add some probes for successful stat()s without having to trigger on
	all stat()s because a lot are for files that don't exist and we 
	contribute to global warming if we trigger on those.

Affected files ...

.. //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#26 edit

Differences ...

==== //depot/projects/dtrace/src/sys/kern/vfs_syscalls.c#26 (text+ko) ====

@@ -90,6 +90,7 @@
 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 *);
@@ -2341,6 +2342,11 @@
 		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);
@@ -2353,10 +2359,6 @@
 	if (KTRPOINT(td, KTR_STRUCT))
 		ktrstat(&sb);
 #endif
-	SDT_PROBE(vfs, , stat, mode, path, sb.st_mode, 0, 0, 0);
-	if (S_ISREG(sb.st_mode)) {
-		SDT_PROBE(vfs, , stat, reg, path, 0, 0, 0, 0);
-	}
 	return (0);
 }
 


More information about the p4-projects mailing list