From: Dmitry Monakhov <dmonakhov@openvz.org>
To: Jan Kara <jack@suse.cz>
Cc: tytso@mit.edu, linux-ext4@vger.kernel.org
Subject: Re: [PATCH] ext4: Always journal quota file modifications
Date: Thu, 03 Jun 2010 13:07:41 +0400 [thread overview]
Message-ID: <87eigo1o2q.fsf@openvz.org> (raw)
In-Reply-To: <1275488593-7237-1-git-send-email-jack@suse.cz> (Jan Kara's message of "Wed, 2 Jun 2010 16:23:13 +0200")
Jan Kara <jack@suse.cz> writes:
> When journaled quota options are not specified, we do writes
> to quota files just in data=ordered mode. This actually causes
> warnings from JBD2 about dirty journaled buffer because ext4_getblk
> unconditionally treats a block allocated by it as metadata. Since
> quota actually is filesystem metadata, the easiest way to get rid
> of the warning is to always treat quota writes as metadata...
Absolutely agree with the fix, but I have a theoretical question.
Is is possible to solve the issue without handling quota's bh
via ext4_handle_dirty_metadata()?
As soon as i understand ext4_jbd2_file_inode() not works here
because bh is belongs to blkdev page-cache. In other words is it
possible provide ordering for blkdev's blocks in jbd2?
>
> Signed-off-by: Jan Kara <jack@suse.cz>
> ---
> fs/ext4/super.c | 19 +++++--------------
> 1 files changed, 5 insertions(+), 14 deletions(-)
>
> Ted, this patch fixes some JBD2 warning for me when running XFSQA
> with quotas enabled. I think this is a move into a direction you are
> trying to achieve as well. Will you merge the patch or should I do it?
>
> Honza
>
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 4e8983a..a8cea08 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -4030,7 +4030,6 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
> ext4_lblk_t blk = off >> EXT4_BLOCK_SIZE_BITS(sb);
> int err = 0;
> int offset = off & (sb->s_blocksize - 1);
> - int journal_quota = EXT4_SB(sb)->s_qf_names[type] != NULL;
> struct buffer_head *bh;
> handle_t *handle = journal_current_handle();
>
> @@ -4055,24 +4054,16 @@ static ssize_t ext4_quota_write(struct super_block *sb, int type,
> bh = ext4_bread(handle, inode, blk, 1, &err);
> if (!bh)
> goto out;
> - if (journal_quota) {
> - err = ext4_journal_get_write_access(handle, bh);
> - if (err) {
> - brelse(bh);
> - goto out;
> - }
> + err = ext4_journal_get_write_access(handle, bh);
> + if (err) {
> + brelse(bh);
> + goto out;
> }
> lock_buffer(bh);
> memcpy(bh->b_data+offset, data, len);
> flush_dcache_page(bh->b_page);
> unlock_buffer(bh);
> - if (journal_quota)
> - err = ext4_handle_dirty_metadata(handle, NULL, bh);
> - else {
> - /* Always do at least ordered writes for quotas */
> - err = ext4_jbd2_file_inode(handle, inode);
> - mark_buffer_dirty(bh);
> - }
> + err = ext4_handle_dirty_metadata(handle, NULL, bh);
> brelse(bh);
> out:
> if (err) {
next prev parent reply other threads:[~2010-06-03 9:07 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-02 14:23 [PATCH] ext4: Always journal quota file modifications Jan Kara
2010-06-02 21:39 ` Eric Sandeen
2010-06-02 23:46 ` Jan Kara
2010-06-03 9:07 ` Dmitry Monakhov [this message]
2010-06-03 11:54 ` Jan Kara
2010-06-03 12:53 ` tytso
2010-06-03 14:13 ` Dmitry Monakhov
2010-06-03 14:19 ` Jan Kara
2010-06-03 17:10 ` tytso
2010-06-04 14:45 ` Jan Kara
2010-06-03 16:47 ` Bernd Schubert
2010-07-05 20:08 ` Eric Sandeen
2010-07-27 13:37 ` Ted Ts'o
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=87eigo1o2q.fsf@openvz.org \
--to=dmonakhov@openvz.org \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).