On Tue, 19 Dec 2006, Darren J Moffat wrote:

Frank Hofmann wrote:
On the technical side, I don't think a new VOP will be needed. This could easily be done in VOP_SPACE together with a new per-fs property - bleach new block when it's allocated (aka VOP_SPACE directly, or in a backend also called e.g. on allocating writes / filling holes), bleach existing block when VOP_SPACE is used to "stamp a hole" into a file, aka a request is made to bleach the blocks of an existing file. I.e. make the implementation behind ftruncate()/posix_fallocate() do the per-file bleaching if so desired. And that implementation is VOP_SPACE.

That isn't solving the problem though, it solves a different problem.

Well, the thread has taken lots of turns already; the "erase just a file" task has been mentioned, and someone threw the idea of "VOP_BLEACH" in.


The problem that I want to be solved is that as files/datasets/pools are deleted (not as they are allocated) they are bleached. In the cases there

VOP_SPACE() does truncation (free) as well as growth (alloc).

would not be a call to posix_fallocate() or ftruncate(), instead an unlink(2) or a zfs destory or zpool destroy. Also on hotsparing in a disk - if the old disk can still be written to in some way we should do our best to bleach it.

Since VOP_*() requires a filesystem (with "/" specifying "all of this fs"), per-zvol or per-vdev "bleaching" needs a different implementation vehicle, that's clear, as you don't have any handle then that you could call it with.

I wouldn't just brush the VOP_*() approach aside. The world isn't pure ZFS there's more to it, whether you wish otherwise or no ...

FrankH.




--
Darren J Moffat

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to