In a non-COW filesystem, one would expect that rewriting an already allocated 
block would never fail for out-of-space (ENOSPC).

But I would expect that it could on ZFS - definitely if there was a snapshot 
around, as it would create a divergence from that snapshot (because both blocks 
would be kept).  Or if deduplication was in effect, and the new block contents 
were unique when the old contents hadn't been unique.

Could rewriting a block _ever_ fail with ENOSPC if there _wasn't_ a snapshot 
present, or is the replace old block with new somehow guaranteed to succeed, so 
as to avoid introducing unexpected semantics?  (say maybe there's a reserved 
amount of free space just for rewrites to avoid that sort of problem, or some 
other magic)

I would think DBMS developers allowing databases to be stored on ZFS, as well 
as folks using mmap(), might particularly want to be aware of the cases in 
which an errno not anticipated from experience with other filesystems might 
arise.


_______________________________________________
OpenIndiana-discuss mailing list
OpenIndiana-discuss@openindiana.org
http://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to