Commit 3aebf25b authored by Anton Altaparmakov's avatar Anton Altaparmakov

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

Signed-off-by: default avatarAnton Altaparmakov <aia21@cantab.net>
parent 1f04c0a2
...@@ -668,10 +668,10 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages, ...@@ -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, * to, we need to read it in before the write,
* i.e. now. * i.e. now.
*/ */
if (!buffer_uptodate(bh) && ((bh_pos < pos && if (!buffer_uptodate(bh) && bh_pos < end &&
bh_end > pos) || bh_end > pos &&
(bh_end > end && (bh_pos < pos ||
bh_end > end))) { bh_end > end)) {
/* /*
* If the buffer is fully or partially * If the buffer is fully or partially
* within the initialized size, do an * within the initialized size, do an
...@@ -784,10 +784,11 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages, ...@@ -784,10 +784,11 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
blocksize_bits); blocksize_bits);
cdelta = 0; cdelta = 0;
/* /*
* If the number of remaining clusters in the * If the number of remaining clusters touched
* @pages is smaller or equal to the number of * by the write is smaller or equal to the
* cached clusters, unlock the runlist as the * number of cached clusters, unlock the
* map cache will be used from now on. * runlist as the map cache will be used from
* now on.
*/ */
if (likely(vcn + vcn_len >= cend)) { if (likely(vcn + vcn_len >= cend)) {
if (rl_write_locked) { if (rl_write_locked) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment