svn commit: r194839 - projects/libprocstat/sys/kern
Ulf Lilleengen
lulf at FreeBSD.org
Wed Jun 24 15:10:13 UTC 2009
Author: lulf
Date: Wed Jun 24 15:10:12 2009
New Revision: 194839
URL: http://svn.freebsd.org/changeset/base/194839
Log:
- Only set data given from VOP_GETATTR if it does not fail. If it does fail,
that is ok, the fields will be left with zeros from an earlier bzero call.
Pointed out by: rwatson
Modified:
projects/libprocstat/sys/kern/kern_descrip.c
Modified: projects/libprocstat/sys/kern/kern_descrip.c
==============================================================================
--- projects/libprocstat/sys/kern/kern_descrip.c Wed Jun 24 15:00:45 2009 (r194838)
+++ projects/libprocstat/sys/kern/kern_descrip.c Wed Jun 24 15:10:12 2009 (r194839)
@@ -2914,12 +2914,14 @@ export_vnode_for_sysctl(struct vnode *vp
freepath = NULL;
fullpath = "-";
FILEDESC_SUNLOCK(fdp);
- VOP_GETATTR(vp, &va, NULL);
- kif->kf_fsid = va.va_fsid;
- kif->kf_fileid = va.va_fileid;
- kif->kf_mode = MAKEIMODE(va.va_type, va.va_mode);
- kif->kf_size = va.va_size;
- kif->kf_rdev = va.va_rdev;
+ error = VOP_GETATTR(vp, &va, NULL);
+ if (error == 0) {
+ kif->kf_fsid = va.va_fsid;
+ kif->kf_fileid = va.va_fileid;
+ kif->kf_mode = MAKEIMODE(va.va_type, va.va_mode);
+ kif->kf_size = va.va_size;
+ kif->kf_rdev = va.va_rdev;
+ }
vn_fullpath(curthread, vp, &fullpath, &freepath);
vfslocked = VFS_LOCK_GIANT(vp->v_mount);
@@ -3096,12 +3098,15 @@ sysctl_kern_proc_filedesc(SYSCTL_HANDLER
freepath = NULL;
fullpath = "-";
FILEDESC_SUNLOCK(fdp);
- VOP_GETATTR(vp, &va, NULL);
- kif->kf_fsid = va.va_fsid;
- kif->kf_fileid = va.va_fileid;
- kif->kf_mode = MAKEIMODE(va.va_type, va.va_mode);
- kif->kf_size = va.va_size;
- kif->kf_rdev = va.va_rdev;
+ error = VOP_GETATTR(vp, &va, NULL);
+ if (error == 0) {
+ kif->kf_fsid = va.va_fsid;
+ kif->kf_fileid = va.va_fileid;
+ kif->kf_mode = MAKEIMODE(va.va_type,
+ va.va_mode);
+ kif->kf_size = va.va_size;
+ kif->kf_rdev = va.va_rdev;
+ }
vn_fullpath(curthread, vp, &fullpath, &freepath);
vfslocked = VFS_LOCK_GIANT(vp->v_mount);
vrele(vp);
More information about the svn-src-projects
mailing list