From: Theodore Ts'o <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: linux-ext4@vger.kernel.org, Mark Fasheh <mfasheh@suse.com>,
Joel Becker <jlbec@evilplan.org>,
ocfs2-devel@oss.oracle.com
Subject: Re: [PATCH 2/2] ext4: Fix deadlock in journal_unmap_buffer()
Date: Fri, 21 Dec 2012 22:52:51 -0500 [thread overview]
Message-ID: <20121222035251.GA5778@thunk.org> (raw)
In-Reply-To: <20121221230347.GB23652@quack.suse.cz>
On Sat, Dec 22, 2012 at 12:03:47AM +0100, Jan Kara wrote:
> I should have commented on this in the changelog :).
> jbd2_journal_invalidatepage() gets called only for file pagecache pages.
> Because ocfs2 doesn't do data journalling it never sees buffers that are
> part of a transaction in jbd2_journal_invalidatepage() (similarly to ext4
> except for data=journal case). I'll send a patch to just stop calling
> jbd2_journal_invalidatepage() for ocfs2... But you are safe to merge this
> patch in the mean time.
Ok, so if ocfs2 never tries journalling data blocks, then buffer_jbd()
will always be NULL, which reduces jbd2_journal_invalidate() to be
equivalent in functionality to block_invalidatepage(), and so it will
never abort and return EBUSY.
Thanks for the explanation, I'll apply the patch.
- Ted
WARNING: multiple messages have this Message-ID (diff)
From: Theodore Ts'o <tytso@mit.edu>
To: Jan Kara <jack@suse.cz>
Cc: linux-ext4@vger.kernel.org, Mark Fasheh <mfasheh@suse.com>,
Joel Becker <jlbec@evilplan.org>,
ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [PATCH 2/2] ext4: Fix deadlock in journal_unmap_buffer()
Date: Fri, 21 Dec 2012 22:52:51 -0500 [thread overview]
Message-ID: <20121222035251.GA5778@thunk.org> (raw)
In-Reply-To: <20121221230347.GB23652@quack.suse.cz>
On Sat, Dec 22, 2012 at 12:03:47AM +0100, Jan Kara wrote:
> I should have commented on this in the changelog :).
> jbd2_journal_invalidatepage() gets called only for file pagecache pages.
> Because ocfs2 doesn't do data journalling it never sees buffers that are
> part of a transaction in jbd2_journal_invalidatepage() (similarly to ext4
> except for data=journal case). I'll send a patch to just stop calling
> jbd2_journal_invalidatepage() for ocfs2... But you are safe to merge this
> patch in the mean time.
Ok, so if ocfs2 never tries journalling data blocks, then buffer_jbd()
will always be NULL, which reduces jbd2_journal_invalidate() to be
equivalent in functionality to block_invalidatepage(), and so it will
never abort and return EBUSY.
Thanks for the explanation, I'll apply the patch.
- Ted
next prev parent reply other threads:[~2012-12-22 3:53 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-12 20:50 [PATCH 1/2] ext4: Split off ext4_journalled_invalidatepage() Jan Kara
2012-12-12 20:50 ` [PATCH 2/2] ext4: Fix deadlock in journal_unmap_buffer() Jan Kara
2012-12-21 19:52 ` Theodore Ts'o
2012-12-21 19:52 ` [Ocfs2-devel] " Theodore Ts'o
2012-12-21 23:03 ` Jan Kara
2012-12-21 23:03 ` [Ocfs2-devel] " Jan Kara
2012-12-22 3:52 ` Theodore Ts'o [this message]
2012-12-22 3:52 ` Theodore Ts'o
2012-12-21 19:48 ` [PATCH 1/2] ext4: Split off ext4_journalled_invalidatepage() Theodore 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=20121222035251.GA5778@thunk.org \
--to=tytso@mit.edu \
--cc=jack@suse.cz \
--cc=jlbec@evilplan.org \
--cc=linux-ext4@vger.kernel.org \
--cc=mfasheh@suse.com \
--cc=ocfs2-devel@oss.oracle.com \
/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.