From: Jeremy Allison <jra@samba.org>
To: Theodore Tso <tytso@MIT.EDU>
Cc: "Pádraig Brady" <P@draigbrady.com>,
"Dave Chinner" <david@fromorbit.com>,
"Christoph Hellwig" <hch@infradead.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: fallocate vs ENOSPC
Date: Mon, 28 Nov 2011 10:49:40 -0800 [thread overview]
Message-ID: <20111128184940.GA5170@samba2> (raw)
In-Reply-To: <AE7E003A-8E02-4192-9B90-96BBE752A92B@mit.edu>
On Mon, Nov 28, 2011 at 09:36:18AM -0500, Theodore Tso wrote:
>
> On Nov 28, 2011, at 3:55 AM, Pádraig Brady wrote:
>
> >
> > You lucidly detailed issues with 1. which I suppose could be somewhat
> > mitigated by not fallocating < say 1MB, though I suppose file systems
> > could be smarter here and not preallocate small chunks (or when
> > otherwise not appropriate). We can already get ENOSPC from a write()
> > after an fallocate() in certain edge cases, so it would probably make
> > sense to expand those cases.
>
> I'm curious -- why are you so worried about ENOSPC?
>
> You need to check the error returns on write(2) anyway (and it's good
> programming practice anyways --- don't forget to check on close because
> some network file systems only push to the network on close, and in
> some cases they might only get quota errors on the close), so I don't see
> why using fallocate() to get an early ENOSPC is so interesting for you.
Unfortunately for Samba, Windows clients will *only* report ENOSPC
to the userspace apps if the initial fallocation fails. Most of
the Windows apps don't bother to check for write() fails after
the initial allocation succeeds.
We check for and report them back to the Windows client anyway of
course, but most Windows apps just silently corrupt their data in
this case.
That's why we use fallocate() in Samba :-(.
Jeremy.
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2011-11-28 18:49 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-25 10:26 fallocate vs ENOSPC Pádraig Brady
2011-11-25 10:40 ` Christoph Hellwig
2011-11-27 3:14 ` Ted Ts'o
2011-11-27 23:43 ` Dave Chinner
2011-11-28 0:13 ` Pádraig Brady
2011-11-28 3:51 ` Dave Chinner
2011-11-28 0:40 ` Theodore Tso
2011-11-28 5:10 ` Dave Chinner
2011-11-28 8:55 ` Pádraig Brady
2011-11-28 10:41 ` tao.peng
2011-11-28 12:02 ` Pádraig Brady
2011-11-28 14:36 ` Theodore Tso
2011-11-28 14:51 ` Pádraig Brady
2011-11-28 20:29 ` Ted Ts'o
2011-11-28 20:49 ` Jeremy Allison
2011-11-29 22:39 ` Eric Sandeen
2011-11-29 23:04 ` Jeremy Allison
2011-11-29 23:19 ` Eric Sandeen
2011-11-28 18:49 ` Jeremy Allison [this message]
2011-11-29 0:26 ` Dave Chinner
2011-11-29 0:45 ` Jeremy Allison
2011-11-29 0:24 ` Dave Chinner
2011-11-29 14:11 ` Pádraig Brady
2011-11-29 23:37 ` Dave Chinner
2011-11-30 9:28 ` Pádraig Brady
2011-11-30 15:32 ` Ted Ts'o
2011-11-30 16:11 ` Pádraig Brady
2011-11-30 17:01 ` Ted Ts'o
2011-11-30 23:39 ` Dave Chinner
2011-12-01 0:11 ` Pádraig Brady
2011-12-07 11:42 ` Pádraig Brady
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111128184940.GA5170@samba2 \
--to=jra@samba.org \
--cc=P@draigbrady.com \
--cc=david@fromorbit.com \
--cc=hch@infradead.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=tytso@MIT.EDU \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).