From: Andrea Arcangeli <andrea@suse.de>
To: Christoph Hellwig <hch@infradead.org>, linux-kernel@vger.kernel.org
Subject: Re: 2.4.20pre5aa1
Date: Thu, 5 Sep 2002 20:41:25 +0200 [thread overview]
Message-ID: <20020905184125.GA1657@dualathlon.random> (raw)
In-Reply-To: <20020905180904.A8406@infradead.org>
On Thu, Sep 05, 2002 at 06:09:04PM +0100, Christoph Hellwig wrote:
> On Thu, Sep 05, 2002 at 06:53:07PM +0200, Andrea Arcangeli wrote:
> > btw, even if xfs is applied before the inode_read_write-atomic, please
> > make sure xfs will learn using the i_size_read when out of the semaphore
> > and i_size_write too. I know the locking is different there but I doubt
> > you're just managing the i_size without races.
>
> XFS always has the XFS i_lock around accessing it. Either in read mode
> or in write mode for updates (the lock is a so-called mrlock which
> basically as a rwsem with a few subtile differences).
>
> Anyway most acceses i_size in the new code are done by the generic
> code now as XFS calls it internally. Take a look at the update I sent
> you a few seconds ago :)
maybe I'm overlooking something but after a short read it seems you have
no lock in do_truncate->setattr like for all the other fs, so the
vmtruncate can run under reads and the i_size can change under you and
in turn you must always read it with i_size_read using asm, like all the
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). this
because i_sem is the only lock/sem hold by truncate. Infact I'm unsure
how you serialize the i_size writes of truncate against the ones from
writes, that seems problematic too, the i_size could get a value past
the last block allocated (in turn corrupting the fs). Please double
check that I'm wrong, thanks.
Andrea
next prev parent reply other threads:[~2002-09-05 18:36 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 ` Andrea Arcangeli [this message]
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 ` 2.4.20pre5aa1 Christoph Hellwig
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=20020905184125.GA1657@dualathlon.random \
--to=andrea@suse.de \
--cc=hch@infradead.org \
--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 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.