diff options
author | Konstantin Belousov <kib@FreeBSD.org> | 2016-09-17 18:14:31 +0000 |
---|---|---|
committer | Konstantin Belousov <kib@FreeBSD.org> | 2016-09-17 18:14:31 +0000 |
commit | 6bd8ddcf0c26c03fa0c07664f2df387cd64202bd (patch) | |
tree | d67026317d3e69fd783449530fa49f15f8160c22 /lib/libprocstat | |
parent | e1db68971eddd3e8e05b29de1ccec9ee4ddc6b8f (diff) | |
download | src-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.c | 9 |
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; |