Sparse files are a feature. It just becomes inconvenient at that point
because you discover the lack of space asynchronously from a useful user
process event. When memory pressure gets high, the vnode pager decides it's
time to push a dirty page to disk, and then discovers that there are no free
blocks on the file system to write to. As I mentioned in my e-mail, it would
be nice if our file system supported a way to reserve blocks for files without
hooking them up to the file's visiible address space (in order to avoid
zeroing them, which is required if you do want to hook them up for an
unprivileged process). However, that feature doesn't currently exist.
Many systems with sensitivity to on-demand allocation costs and without
security requirements allow files to be extended without zeroing. On systems
with security requirements, this becomes a privileged operation (such as on
Mac OS X) because exposing unzeroed pages from other files or processes not
explicitly shared is Not Allowed.
Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"