提交 3aebf25b 编写于 作者: A Anton Altaparmakov

NTFS: Fix a stupid bug causing writes to non-initialized pages to segfault.

Signed-off-by: NAnton Altaparmakov <aia21@cantab.net>
上级 1f04c0a2
......@@ -668,10 +668,10 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
* to, we need to read it in before the write,
* i.e. now.
*/
if (!buffer_uptodate(bh) && ((bh_pos < pos &&
bh_end > pos) ||
(bh_end > end &&
bh_end > end))) {
if (!buffer_uptodate(bh) && bh_pos < end &&
bh_end > pos &&
(bh_pos < pos ||
bh_end > end)) {
/*
* If the buffer is fully or partially
* within the initialized size, do an
......@@ -784,10 +784,11 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
blocksize_bits);
cdelta = 0;
/*
* If the number of remaining clusters in the
* @pages is smaller or equal to the number of
* cached clusters, unlock the runlist as the
* map cache will be used from now on.
* If the number of remaining clusters touched
* by the write is smaller or equal to the
* number of cached clusters, unlock the
* runlist as the map cache will be used from
* now on.
*/
if (likely(vcn + vcn_len >= cend)) {
if (rl_write_locked) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册