blob: 6632ffbb176a5cd5fc7e078a9a944e21fb8462e0 [file] [log] [blame]
// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (C) 2019 Oracle. All Rights Reserved.
* Author: Darrick J. Wong <darrick.wong@oracle.com>
*/
#include "xfs.h"
#include "xfrog.h"
/* Bulkstat a single inode. */
int
xfrog_bulkstat_single(
struct xfs_fd *xfd,
uint64_t ino,
struct xfs_bstat *ubuffer)
{
__u64 i = ino;
struct xfs_fsop_bulkreq bulkreq = {
.lastip = &i,
.icount = 1,
.ubuffer = ubuffer,
.ocount = NULL,
};
return ioctl(xfd->fd, XFS_IOC_FSBULKSTAT_SINGLE, &bulkreq);
}
/* Bulkstat a bunch of inodes. */
int
xfrog_bulkstat(
struct xfs_fd *xfd,
uint64_t *lastino,
uint32_t icount,
struct xfs_bstat *ubuffer,
uint32_t *ocount)
{
struct xfs_fsop_bulkreq bulkreq = {
.lastip = (__u64 *)lastino,
.icount = icount,
.ubuffer = ubuffer,
.ocount = (__s32 *)ocount,
};
return ioctl(xfd->fd, XFS_IOC_FSBULKSTAT, &bulkreq);
}
/* Query inode allocation bitmask information. */
int
xfrog_inumbers(
struct xfs_fd *xfd,
uint64_t *lastino,
uint32_t icount,
struct xfs_inogrp *ubuffer,
uint32_t *ocount)
{
struct xfs_fsop_bulkreq bulkreq = {
.lastip = (__u64 *)lastino,
.icount = icount,
.ubuffer = ubuffer,
.ocount = (__s32 *)ocount,
};
return ioctl(xfd->fd, XFS_IOC_FSINUMBERS, &bulkreq);
}