Date: Fri, 04 Mar 2011 16:12:20 +0100 From: Attila Nagy <bra@fsn.hu> To: freebsd-fs@freebsd.org Subject: Punching holes into (sparse) files - porting Solaris fcntl(F_FREESP) to FreeBSD? Message-ID: <4D710154.90409@fsn.hu>
next in thread | raw e-mail | index | archive | help
Hi, Is it possible to make regions of files, with already written data sparse? (I'm interested to do this on ZFS) All I could find in this topic is: http://www.mail-archive.com/zfs-discuss@opensolaris.org/msg29047.html grepping through the source gives a match for VOP_SPACE in cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_replay.c: zfs_replay_truncate(zfsvfs_t *zfsvfs, lr_truncate_t *lr, boolean_t byteswap) { #ifdef sun [...] error = VOP_SPACE(ZTOV(zp), F_FREESP, &fl, FWRITE | FOFFMAX, lr->lr_offset, kcred, NULL); And the relevant section from fcntl(2) in Solaris: F_FREESP Free storage space associated with a section of the ordinary file fildes. The section is specified by a variable of data type struct flock pointed to by arg. The data type struct flock is defined in the <fcntl.h> header (see fcntl.h(3HEAD)) and is described below. Note that all file systems might not support all possible variations of F_FREESP arguments. In particular, many file systems allow space to be freed only at the end of a file. F_FREESP seems to be my friend, and it's implemented in Solaris's ZFS. How hard would it be to complete the port and make it accessible from FreeBSD? I guess it was left out with a reason... Thanks,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D710154.90409>