Date: Sat, 1 Aug 2009 21:46:55 +0000 (UTC) From: Stanislav Sedov <stas@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r196023 - projects/libprocstat/sys/kern Message-ID: <200908012146.n71LktZx093461@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908012146.n71LktZx093461>