79124f18b3
Hole punching has already been implemented by XFS and OCFS2, and has the potential to be implemented on both BTRFS and EXT4 so we need a generic way to get to this feature. The simplest way in my mind is to add FALLOC_FL_PUNCH_HOLE to fallocate() since it already looks like the normal fallocate() operation. I've tested this patch with XFS and BTRFS to make sure XFS did what it's supposed to do and that BTRFS failed like it was supposed to. Thank you, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
28 lines
663 B
C
28 lines
663 B
C
#ifndef _FALLOC_H_
|
|
#define _FALLOC_H_
|
|
|
|
#define FALLOC_FL_KEEP_SIZE 0x01 /* default is extend size */
|
|
#define FALLOC_FL_PUNCH_HOLE 0x02 /* de-allocates range */
|
|
|
|
#ifdef __KERNEL__
|
|
|
|
/*
|
|
* Space reservation ioctls and argument structure
|
|
* are designed to be compatible with the legacy XFS ioctls.
|
|
*/
|
|
struct space_resv {
|
|
__s16 l_type;
|
|
__s16 l_whence;
|
|
__s64 l_start;
|
|
__s64 l_len; /* len == 0 means until end of file */
|
|
__s32 l_sysid;
|
|
__u32 l_pid;
|
|
__s32 l_pad[4]; /* reserved area */
|
|
};
|
|
|
|
#define FS_IOC_RESVSP _IOW('X', 40, struct space_resv)
|
|
#define FS_IOC_RESVSP64 _IOW('X', 42, struct space_resv)
|
|
|
|
#endif /* __KERNEL__ */
|
|
|
|
#endif /* _FALLOC_H_ */
|