Add FIOBMAP2 ioctl
This ioctl exposes VOP_BMAP information to userland. It can be used by programs like fragmentation analyzers and optimized cp implementations. But I'm using it to test fusefs's VOP_BMAP implementation. The "2" in the name distinguishes it from the similar but incompatible FIBMAP ioctls in NetBSD and Linux. FIOBMAP2 differs from FIBMAP in that it uses a 64-bit block number instead of 32-bit, and it also returns runp and runb. Reviewed by: mckusick MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D20705
This commit is contained in:
parent
c42aaaea4f
commit
8fe49db783
|
@ -62,6 +62,13 @@ struct fiodgname_arg {
|
||||||
/* Handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge. */
|
/* Handle lseek SEEK_DATA and SEEK_HOLE for holey file knowledge. */
|
||||||
#define FIOSEEKDATA _IOWR('f', 97, off_t) /* SEEK_DATA */
|
#define FIOSEEKDATA _IOWR('f', 97, off_t) /* SEEK_DATA */
|
||||||
#define FIOSEEKHOLE _IOWR('f', 98, off_t) /* SEEK_HOLE */
|
#define FIOSEEKHOLE _IOWR('f', 98, off_t) /* SEEK_HOLE */
|
||||||
|
struct fiobmap2_arg {
|
||||||
|
int64_t bn;
|
||||||
|
int runp;
|
||||||
|
int runb;
|
||||||
|
};
|
||||||
|
/* Get the file's bmap info for the logical block bn */
|
||||||
|
#define FIOBMAP2 _IOWR('f', 99, struct fiobmap2_arg)
|
||||||
|
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
#ifdef COMPAT_FREEBSD32
|
#ifdef COMPAT_FREEBSD32
|
||||||
|
|
Loading…
Reference in New Issue