public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
* fallocate does not prevent ENOSPC on write
@ 2019-04-22 21:09 Jakob Unterwurzacher
  2019-04-23  2:16 ` Qu Wenruo
  0 siblings, 1 reply; 22+ messages in thread
From: Jakob Unterwurzacher @ 2019-04-22 21:09 UTC (permalink / raw)
  To: linux-btrfs

I have a user who is reporting ENOSPC errors when running gocryptfs on
top of btrfs (ticket: https://github.com/rfjakob/gocryptfs/issues/395 ).

What is interesting is that the error gets thrown at write time. This
is not supposed to happen, because gocryptfs does

    fallocate(..., FALLOC_FL_KEEP_SIZE, ...)

before writing.

I wrote a minimal reproducer in C: https://github.com/rfjakob/fallocate_write
This is what it looks like on ext4:

    $ ../fallocate_write/fallocate_write
    reading from /dev/urandom
    writing to ./blob.379Q8P
    writing blocks of 132096 bytes each
    [...]
    fallocate failed: No space left on device

On btrfs, it will instead look like this:

    [...]
    pwrite failed: No space left on device

Is this a bug in btrfs' fallocate implementation or am I reading the
guarantees that fallocate gives me wrong?

Thanks!
Jakob

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

end of thread, other threads:[~2019-04-27 11:25 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-22 21:09 fallocate does not prevent ENOSPC on write Jakob Unterwurzacher
2019-04-23  2:16 ` Qu Wenruo
2019-04-23 11:33   ` David Sterba
2019-04-23 12:12     ` Qu Wenruo
2019-04-23 14:50       ` Filipe Manana
2019-04-23 19:21         ` Jakob Unterwurzacher
2019-04-23 23:56           ` Zygo Blaxell
2019-04-27 11:25             ` Jakob Unterwurzacher
2019-04-23 23:49         ` Qu Wenruo
2019-04-24  9:28           ` Filipe Manana
2019-04-24  9:50             ` Qu Wenruo
2019-04-25  5:49     ` Qu Wenruo
2019-04-25 13:25       ` Josef Bacik
2019-04-25 13:50         ` Qu Wenruo
2019-04-25 14:09           ` Josef Bacik
2019-04-25 14:11             ` Qu Wenruo
2019-04-25 14:13               ` Josef Bacik
2019-04-25 14:16                 ` Qu Wenruo
2019-04-26 12:47                 ` David Sterba
2019-04-25 14:43               ` Filipe Manana
2019-04-25 23:16                 ` Qu Wenruo
2019-04-25 14:39       ` Filipe Manana

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox