From: Mingming Cao <cmm@us.ibm.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: hongshin@gmail.com, adilger@sun.com, linux-ext4@vger.kernel.org
Subject: Re: a suspected data race bug in Ext4 file system
Date: Fri, 07 Nov 2008 10:56:54 -0800 [thread overview]
Message-ID: <1226084214.10191.10.camel@mingming-laptop> (raw)
In-Reply-To: <20081106185109.ce8be9b8.akpm@linux-foundation.org>
On Thu, 2008-11-06 at 18:51 -0800, Andrew Morton wrote:
> On Fri, 7 Nov 2008 11:09:49 +0900 "______ shin hong" <hongshin@gmail.com> wrote:
>
> > Dear Ext4 maintainer,
> >
> > I found a suspected data race bug at ext4_release_file() in ext4/file.c .
> >
> > Is it necessary to re-check whether the if-statement's
> > condition(atomic_read(&inode->i_writecount) == 1) is satisifed after
> > semaphore down operation?
> >
> > It seems to use "test and test and set" pattern(double-checking)
> > but the second "test" seems to be missed.
> >
> > Please examine this function. Thank you.
> >
> > p.s. I sent the same report to sct@redhat.com. But I did not received
> > any reply.
> > I think my mail was discarded so I am sending the same again.
> >
>
> An appropriate way to report this possible bug is to Cc: the ext4 mailing
> list, which I have cc'ed here.
I guess we could add the check after grab the i_data_sem, but not sure
how useful is that, there is always a window that during the process of
freeing preallocation, another new writer to the same inode. The
i_data_sem semaphore is hold to prevent race between discard
preallocation and use of preallocation, not to protect i_writecount.
The check of inode's i_writecount is to avoid doing discard for every
file close, the idea is only try to discard the preallocation for the
last writer of the file. But the i_writecount could be >1 at the time of
discard preallocation. If a new writer comes in after i_data_sem is hold
then the preallocation is freed, then by the time the new writer comes
in and need block allocation, the preallocate gets build up
atomatically.
Mingming
prev parent reply other threads:[~2008-11-07 18:57 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <2014bcab0811061809vca13befn813440a32dda3914@mail.gmail.com>
2008-11-07 2:51 ` a suspected data race bug in Ext4 file system Andrew Morton
2008-11-07 18:56 ` Mingming Cao [this message]
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=1226084214.10191.10.camel@mingming-laptop \
--to=cmm@us.ibm.com \
--cc=adilger@sun.com \
--cc=akpm@linux-foundation.org \
--cc=hongshin@gmail.com \
--cc=linux-ext4@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