From: Christoph Hellwig <hch@infradead.org>
To: Andrea Arcangeli <andrea@suse.de>
Cc: linux-kernel@vger.kernel.org, lord@sgi.com
Subject: Re: 2.4.20pre5aa1
Date: Thu, 5 Sep 2002 20:15:30 +0100 [thread overview]
Message-ID: <20020905201530.A12457@infradead.org> (raw)
In-Reply-To: <20020905190600.GH1657@dualathlon.random>; from andrea@suse.de on Thu, Sep 05, 2002 at 09:06:00PM +0200
On Thu, Sep 05, 2002 at 09:06:00PM +0200, Andrea Arcangeli wrote:
> On Thu, Sep 05, 2002 at 07:48:24PM +0100, Christoph Hellwig wrote:
> > On Thu, Sep 05, 2002 at 08:41:25PM +0200, Andrea Arcangeli wrote:
> > > other fs, if you're not holding the i_sem (and you certainly aren't
> > > holding the i_sem that frequently, you don't even for writes).
> >
> > Except of O_DIRECT writes we _do_ hold i_sem, btw.
>
> can't you end with this?
>
> O_DIRECT write
> write finishes
> truncate drops the write
> truncate set i_sem to 0
> write set i_sem to something
s/i_sem/i_size/g ?
> and the fs is then corrupt? (very minor corruption of course and
> extremely hard to trigger, trivially solvable by an fsck, ext[23] had
> similar issues too with the get_block failures with < PAGE_SIZE
> softblocksize, fixed around 2.4.19, that was certainly easier to
> reproduce btw)
Won't happen:
O_DIRECT write starts
+ takes XFS iolock exclusive
- invalidates pagecache
+ downgrades iolock to shared
- perform write
xfs_setattr for truncate called
+ takes XFS iolock shared
-> blocks
- write i_size to something
+ releases iolock
-> gets woken
next prev parent reply other threads:[~2002-09-05 19:10 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-04 23:35 2.4.20pre5aa1 Andrea Arcangeli
2002-09-04 23:56 ` 2.4.20pre5aa1 Andrew Morton
2002-09-05 0:25 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 12:44 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 16:53 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 17:09 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 18:41 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 18:46 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 18:59 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 19:02 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 19:13 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 19:17 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 18:48 ` 2.4.20pre5aa1 Christoph Hellwig
2002-09-05 19:06 ` 2.4.20pre5aa1 Andrea Arcangeli
2002-09-05 19:15 ` Christoph Hellwig [this message]
2002-09-05 19:26 ` 2.4.20pre5aa1 Christoph Hellwig
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=20020905201530.A12457@infradead.org \
--to=hch@infradead.org \
--cc=andrea@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=lord@sgi.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.