From: Rob Landley <rob@landley.net>
To: Evgeny Stambulchik <Evgeny.Stambulchik@weizmann.ac.il>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Weirdness of "mount -o remount,rw" with write-protected floppy
Date: Fri, 28 Oct 2005 08:50:40 -0500 [thread overview]
Message-ID: <200510280850.40609.rob@landley.net> (raw)
In-Reply-To: <4362248C.3060401@weizmann.ac.il>
On Friday 28 October 2005 08:15, Evgeny Stambulchik wrote:
> Rob Landley wrote:
> > It looks like one bug to me. The initial mount figures out that it's
> > read only, and the actual writes fail correctly, but remount isn't
> > checking for read only (and thus isn't failing).
>
> Right, but even after remount seemingly succeeds, an attempt to write to
> an unwritable media should return an error nevertheless, as the
> corresponding syscall should fail, obviously.
You're forgetting the cacheing (dentry and page caches).
We have a writeable filesystem mounted on a read-only block device. This is
an impossible situation we should never have gotten into in the first place.
That's the bug.
For performance reasons, the write stuffs the data into the page cache, and
returns long before the system even attempts to write the data to disk.
(Unless you mount the filesystem O_SYNC, which will kill performance.)
So the write happily succeeds, and by the time the later attempt to flush data
to the underlying block device is made (by memory pressure or pdflush)
there's nobody to report it to anymore. So it logs it.
Incidentally, this is why checking the return value of close() is silly. If
you want to fsync the data, call fsync (which blocks until we've hit the disk
and can thus report whether or not it actually made it). close() is just as
cached as anything else, it updates an in-memory dentry that may nor may not
successfully be flushed to disk later on, depending on whether or not the
disk got hotplugged away out from under us before then...
Rob
next prev parent reply other threads:[~2005-10-28 13:50 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-27 11:57 Weirdness of "mount -o remount,rw" with write-protected floppy Evgeny Stambulchik
2005-10-27 15:05 ` Jon Masters
2005-10-29 11:58 ` Jon Masters
2005-10-29 13:10 ` Jon Masters
2005-10-27 21:09 ` Rob Landley
2005-10-28 11:55 ` Evgeny Stambulchik
2005-10-28 12:26 ` Rob Landley
2005-10-28 13:15 ` Evgeny Stambulchik
2005-10-28 13:50 ` Rob Landley [this message]
2005-10-28 14:52 ` Evgeny Stambulchik
2005-10-29 1:29 ` Rob Landley
2005-10-29 11:06 ` Evgeny Stambulchik
2005-10-29 16:02 ` Jon Masters
2005-10-29 17:05 ` Jon Masters
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=200510280850.40609.rob@landley.net \
--to=rob@landley.net \
--cc=Evgeny.Stambulchik@weizmann.ac.il \
--cc=linux-kernel@vger.kernel.org \
/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