summaryrefslogtreecommitdiff
path: root/lib/libprocstat
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2016-09-17 18:14:31 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2016-09-17 18:14:31 +0000
commit6bd8ddcf0c26c03fa0c07664f2df387cd64202bd (patch)
treed67026317d3e69fd783449530fa49f15f8160c22 /lib/libprocstat
parente1db68971eddd3e8e05b29de1ccec9ee4ddc6b8f (diff)
downloadsrc-test-6bd8ddcf0c26c03fa0c07664f2df387cd64202bd.tar.gz
src-test-6bd8ddcf0c26c03fa0c07664f2df387cd64202bd.zip
Fix libprocstat build after r305902.
- Use _Bool to not require userspace to include stdbool.h. - Make extattr.h usable without vnode_if.h. - Follow i_ump to get cdev pointer. Sponsored by: The FreeBSD Foundation MFC after: 2 weeks
Notes
Notes: svn path=/head/; revision=305903
Diffstat (limited to 'lib/libprocstat')
-rw-r--r--lib/libprocstat/common_kvm.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/libprocstat/common_kvm.c b/lib/libprocstat/common_kvm.c
index be05980f183f1..4ca25145b75d6 100644
--- a/lib/libprocstat/common_kvm.c
+++ b/lib/libprocstat/common_kvm.c
@@ -45,6 +45,8 @@ __FBSDID("$FreeBSD$");
#include <sys/mount.h>
#include <ufs/ufs/quota.h>
#include <ufs/ufs/inode.h>
+#include <ufs/ufs/extattr.h>
+#include <ufs/ufs/ufsmount.h>
#include <fs/devfs/devfs.h>
#include <fs/devfs/devfs_int.h>
#undef _KERNEL
@@ -88,17 +90,22 @@ int
ufs_filestat(kvm_t *kd, struct vnode *vp, struct vnstat *vn)
{
struct inode inode;
+ struct ufsmount um;
if (!kvm_read_all(kd, (unsigned long)VTOI(vp), &inode, sizeof(inode))) {
warnx("can't read inode at %p", (void *)VTOI(vp));
return (1);
}
+ if (!kvm_read_all(kd, (unsigned long)inode.i_ump, &um, sizeof(um))) {
+ warnx("can't read ufsmount at %p", (void *)inode.i_ump);
+ return (1);
+ }
/*
* The st_dev from stat(2) is a dev_t. These kernel structures
* contain cdev pointers. We need to convert to dev_t to make
* comparisons
*/
- vn->vn_fsid = dev2udev(kd, inode.i_dev);
+ vn->vn_fsid = dev2udev(kd, um.um_dev);
vn->vn_fileid = inode.i_number;
vn->vn_mode = (mode_t)inode.i_mode;
vn->vn_size = inode.i_size;