linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* fallocate behavior during ENOSPC
@ 2017-11-01 12:51 Carlos Maiolino
  2017-11-01 21:04 ` Dave Chinner
  0 siblings, 1 reply; 3+ messages in thread
From: Carlos Maiolino @ 2017-11-01 12:51 UTC (permalink / raw)
  To: linux-fsdevel

Hi,

Does anyone know how fallocate should behave if it hits an ENOSPC in the middle
of the block reservation? The man page is not really specific about it.

Being more specific:

If we try to fallocate a 10G file, but the filesystem does not have enough space
to accommodate the whole allocation request, it will return an ENOSPC, but, it
doesn't specifically says if the whole allocation should fail or if we can end
up with a partially allocation.

In the man page:

"After a successful call, subsequent writes into the range specified by offset
and len are guaranteed not to fail because of lack of disk space."

and:

"ENOSPC There  is  not enough space left on the device containing the file
referred to by fd."

By my interpretation, I'd say that if the fallocate fails with -ENOSPC, no
allocation should be done at all, and the file size should not be changed,
once we can't guarantee the writes will not fail due lack of disk space.

However, what I see is a different behavior for different filesystems, for
instance, if the file already has some blocks allocated, Ext4 will leave the
file with a partial pre-allocation made by fallocate, while XFS does not change
file size of add any extra blocks to the file at all.

If the original file size is 0, it changes a bit, Ext4 will still change the
file size and leave the partially allocated blocks there, while XFS won't change
the file size, but will keep the partially pre-allocated blocks.

I wonder how it should really behave or if it is a filesystem decision?

Cheers



-- 
Carlos

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-11-02 15:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-01 12:51 fallocate behavior during ENOSPC Carlos Maiolino
2017-11-01 21:04 ` Dave Chinner
2017-11-02 15:55   ` Carlos Maiolino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).