From: Chris Mason <chris.mason@oracle.com>
To: Jan Kara <jack@suse.cz>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
"Theodore Ts'o" <tytso@mit.edu>,
Linux Kernel Developers List <linux-kernel@vger.kernel.org>,
Ext4 Developers List <linux-ext4@vger.kernel.org>,
Mike Galbraith <efault@gmx.de>
Subject: Re: [PATCH RFC] ext3 data=guarded v5
Date: Wed, 29 Apr 2009 16:37:01 -0400 [thread overview]
Message-ID: <1241037421.20099.70.camel@think.oraclecorp.com> (raw)
In-Reply-To: <20090429200412.GA27924@duck.suse.cz>
On Wed, 2009-04-29 at 22:04 +0200, Jan Kara wrote:
> > What we don't want to do is have a call to write() over existing blocks
> > in the file add new things to the data=ordered list. I don't see how we
> > can avoid that without datanew.
> Yes, what I suggest would do exactly that:
> In ordered_writepage() in the beginning we do:
> page_bufs = page_buffers(page);
> if (!walk_page_buffers(NULL, page_bufs, 0, PAGE_CACHE_SIZE,
> NULL, buffer_unmapped)) {
> return block_write_full_page(page, NULL, wbc);
> }
> So we only get to starting a transaction and file some buffers if some buffer
> in the page is unmapped. Write() maps / allocates all buffers in write_begin()
> so they are never added to ordered lists in writepage().
Right, writepage doesn't really need datanew.
> We rely on write_end
> to do it. So the only case where not all buffers in the page are mapped is
> when we have to allocate in writepage() (mmaped write) or the two cases I
> describe above.
But I still think write_end does need datanew. That's where 99% of the
ordered buffers are going to come from when we overwrite the contents of
an existing file.
-chris
next prev parent reply other threads:[~2009-04-29 20:38 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-28 18:04 [PATCH RFC] ext3 data=guarded v5 Chris Mason
2009-04-28 18:04 ` Chris Mason
2009-04-28 18:33 ` Mike Galbraith
2009-04-28 18:54 ` Chris Mason
2009-04-29 2:12 ` KOSAKI Motohiro
2009-04-29 8:56 ` Jan Kara
2009-04-29 14:08 ` Chris Mason
2009-04-29 14:43 ` Chris Mason
2009-04-29 19:47 ` Andreas Dilger
2009-04-29 19:15 ` Jan Kara
2009-04-29 19:41 ` Chris Mason
2009-04-29 20:04 ` Jan Kara
2009-04-29 20:37 ` Chris Mason [this message]
2009-04-30 11:38 ` Jan Kara
2009-04-29 21:53 ` Theodore Tso
2009-04-29 19:51 ` [PATCH RFC] ext3 data=guarded v6 Chris Mason
2009-04-29 20:21 ` Jan Kara
2009-04-29 20:53 ` [PATCH RFC] ext3 data=guarded v7 Chris Mason
2009-04-30 11:52 ` Jan Kara
2009-04-30 13:17 ` Chris Mason
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=1241037421.20099.70.camel@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=efault@gmx.de \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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 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.