svn commit: r196023 - projects/libprocstat/sys/kern
Stanislav Sedov
stas at FreeBSD.org
Sat Aug 1 21:46:56 UTC 2009
Author: stas
Date: Sat Aug 1 21:46:55 2009
New Revision: 196023
URL: http://svn.freebsd.org/changeset/base/196023
Log:
- Correctly retrieve fsid for vnodes that belong to filesystems
not supporting these fields.
Modified:
projects/libprocstat/sys/kern/kern_descrip.c
Modified: projects/libprocstat/sys/kern/kern_descrip.c
==============================================================================
--- projects/libprocstat/sys/kern/kern_descrip.c Sat Aug 1 21:45:48 2009 (r196022)
+++ projects/libprocstat/sys/kern/kern_descrip.c Sat Aug 1 21:46:55 2009 (r196023)
@@ -3193,6 +3193,8 @@ fill_vnode_info(struct vnode *vp, struct
/*
* Retrieve vnode attributes.
*/
+ va.va_fsid = VNOVAL;
+ va.va_rdev = NODEV;
vfslocked = VFS_LOCK_GIANT(vp->v_mount);
vn_lock(vp, LK_SHARED | LK_RETRY);
error = VOP_GETATTR(vp, &va, curthread->td_ucred);
@@ -3200,7 +3202,11 @@ fill_vnode_info(struct vnode *vp, struct
VFS_UNLOCK_GIANT(vfslocked);
if (error != 0)
return (error);
- kif->kf_un.kf_file.kf_file_fsid = va.va_fsid;
+ if (va.va_fsid != VNOVAL)
+ kif->kf_un.kf_file.kf_file_fsid = va.va_fsid;
+ else
+ kif->kf_un.kf_file.kf_file_fsid =
+ vp->v_mount->mnt_stat.f_fsid.val[0];
kif->kf_un.kf_file.kf_file_fileid = va.va_fileid;
kif->kf_un.kf_file.kf_file_mode = MAKEIMODE(va.va_type, va.va_mode);
kif->kf_un.kf_file.kf_file_size = va.va_size;
More information about the svn-src-projects
mailing list