From: Akira Fujita <a-fujita@rs.jp.nec.com>
To: Peng Tao <bergwolf@gmail.com>
Cc: linux-ext4@vger.kernel.org, "Theodore Ts'o" <tytso@mit.edu>
Subject: Re: [PATCH 1/2] ext4: fix journal ref count in move_extent_par_page
Date: Mon, 03 Aug 2009 17:30:07 +0900 [thread overview]
Message-ID: <4A76A00F.30506@rs.jp.nec.com> (raw)
In-Reply-To: <1249213404-6277-1-git-send-email-bergwolf@gmail.com>
Hi Peng,
Peng Tao wrote:
> move_extent_par_page calls a_ops->write_begin() to increase journal handler's
> reference count. However, if either mext_replace_branches() or ext4_get_block
> fails, the increased reference count isn't decreased. This will cause later
> umounting of the fs forever hangs. The patch addresses the issue by calling
> ext4_journal_stop() if page is not NULL (which means a_ops->write_end() isn't
> invoked).
In case mext_replaced_branches() or ext4_get_block failed,
ext4_journal_stop() is called at out2 label(*)
and then journal reference counter is decreased.
Therefore I think this fix is not necessary.
static int
move_extent_par_page(struct file *o_filp, struct inode *donor_inode,
pgoff_t orig_page_offset, int data_offset_in_page,
int block_len_in_page, int uninit)
<snip>
out:
if (unlikely(page)) {
if (PageLocked(page))
unlock_page(page);
page_cache_release(page);
}
out2:
* ext4_journal_stop(handle);
return ret < 0 ? ret : 0;
}
Regards,
Akira Fujita
next prev parent reply other threads:[~2009-08-03 8:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-02 11:43 [PATCH 1/2] ext4: fix journal ref count in move_extent_par_page Peng Tao
2009-08-02 11:43 ` [PATCH 2/2] ext4: fix null pointer bug in move_extent.c Peng Tao
2009-08-03 8:30 ` Akira Fujita
2009-08-03 13:20 ` Peng Tao
2009-08-04 8:24 ` Akira Fujita
2009-08-08 17:18 ` Peng Tao
2009-08-10 17:26 ` Peng Tao
2009-08-03 8:30 ` Akira Fujita [this message]
2009-08-03 13:17 ` [PATCH 1/2] ext4: fix journal ref count in move_extent_par_page Peng Tao
2009-08-04 8:23 ` Akira Fujita
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=4A76A00F.30506@rs.jp.nec.com \
--to=a-fujita@rs.jp.nec.com \
--cc=bergwolf@gmail.com \
--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.