All of lore.kernel.org
 help / color / mirror / Atom feed
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) {

  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 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.