svn commit: r194887 - in projects/libprocstat/sys: kern sys

Ulf Lilleengen lulf at FreeBSD.org
Wed Jun 24 19:05:40 UTC 2009


Author: lulf
Date: Wed Jun 24 19:05:39 2009
New Revision: 194887
URL: http://svn.freebsd.org/changeset/base/194887

Log:
  - Invert the flag to indicate if VOP_GETATTR was successful rather than
    unsuccessful, as an old kernel will have the padding zero'ed. Doing it this
    way makes it possible for userland tools checking the flag to work correctly
    on older kernels.
  
  Suggested by:	jhb

Modified:
  projects/libprocstat/sys/kern/kern_descrip.c
  projects/libprocstat/sys/sys/user.h

Modified: projects/libprocstat/sys/kern/kern_descrip.c
==============================================================================
--- projects/libprocstat/sys/kern/kern_descrip.c	Wed Jun 24 19:04:08 2009	(r194886)
+++ projects/libprocstat/sys/kern/kern_descrip.c	Wed Jun 24 19:05:39 2009	(r194887)
@@ -2927,10 +2927,9 @@ prepare_kinfo_file(struct vnode *vp, str
 	fullpath = "-";
 	do {
 		error = VOP_GETATTR(vp, &va, NULL);
-		if (error) {
-			kif->kf_status |= KF_GETATTR_FAIL;
+		if (error)
 			break;
-		}
+		kif->kf_status |= KF_ATTR_VALID;
 		kif->kf_file_fsid = va.va_fsid;
 		kif->kf_file_fileid = va.va_fileid;
 		kif->kf_file_mode = MAKEIMODE(va.va_type, va.va_mode);

Modified: projects/libprocstat/sys/sys/user.h
==============================================================================
--- projects/libprocstat/sys/sys/user.h	Wed Jun 24 19:04:08 2009	(r194886)
+++ projects/libprocstat/sys/sys/user.h	Wed Jun 24 19:05:39 2009	(r194887)
@@ -241,7 +241,7 @@ struct user {
  * The KERN_PROC_FILE sysctl allows a process to dump the file descriptor
  * array of another process.
  */
-#define	KF_GETATTR_FAIL	0x0001
+#define	KF_ATTR_VALID	0x0001
 
 #define	KF_TYPE_NONE	0
 #define	KF_TYPE_VNODE	1


More information about the svn-src-projects mailing list