Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f25dfb5e authored by Anton Altaparmakov's avatar Anton Altaparmakov
Browse files

NTFS: Remove bogus setting of PageError in ntfs_read_compressed_block().

parent 8e08ceae
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ ToDo/Notes:
	- Fix a bug in fs/ntfs/index.c::ntfs_index_lookup().  When the returned
	  index entry is in the index root, we forgot to set the @ir pointer in
	  the index context.  Thanks to Yura Pakhuchiy for finding this bug.
	- Remove bogus setting of PageError in ntfs_read_compressed_block().

2.1.23 - Implement extension of resident files and make writing safe as well as
	 many bug fixes, cleanups, and enhancements...
+0 −8
Original line number Diff line number Diff line
@@ -539,7 +539,6 @@ int ntfs_read_compressed_block(struct page *page)
	if (unlikely(!pages || !bhs)) {
		kfree(bhs);
		kfree(pages);
		SetPageError(page);
		unlock_page(page);
		ntfs_error(vol->sb, "Failed to allocate internal buffers.");
		return -ENOMEM;
@@ -871,9 +870,6 @@ int ntfs_read_compressed_block(struct page *page)
			for (; prev_cur_page < cur_page; prev_cur_page++) {
				page = pages[prev_cur_page];
				if (page) {
					if (prev_cur_page == xpage &&
							!xpage_done)
						SetPageError(page);
					flush_dcache_page(page);
					kunmap(page);
					unlock_page(page);
@@ -904,8 +900,6 @@ int ntfs_read_compressed_block(struct page *page)
					"Terminating them with extreme "
					"prejudice.  Inode 0x%lx, page index "
					"0x%lx.", ni->mft_no, page->index);
			if (cur_page == xpage && !xpage_done)
				SetPageError(page);
			flush_dcache_page(page);
			kunmap(page);
			unlock_page(page);
@@ -953,8 +947,6 @@ int ntfs_read_compressed_block(struct page *page)
	for (i = cur_page; i < max_page; i++) {
		page = pages[i];
		if (page) {
			if (i == xpage && !xpage_done)
				SetPageError(page);
			flush_dcache_page(page);
			kunmap(page);
			unlock_page(page);
+7 −2
Original line number Diff line number Diff line
/*
 * file.c - NTFS kernel file operations.  Part of the Linux-NTFS project.
 *
 * Copyright (c) 2001-2004 Anton Altaparmakov
 * Copyright (c) 2001-2005 Anton Altaparmakov
 *
 * This program/include file is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as published
@@ -94,6 +94,11 @@ static int ntfs_file_fsync(struct file *filp, struct dentry *dentry,
	if (!datasync || !NInoNonResident(NTFS_I(vi)))
		ret = ntfs_write_inode(vi, 1);
	write_inode_now(vi, !datasync);
	/*
	 * NOTE: If we were to use mapping->private_list (see ext2 and
	 * fs/buffer.c) for dirty blocks then we could optimize the below to be
	 * sync_mapping_buffers(vi->i_mapping).
	 */
	err = sync_blockdev(vi->i_sb->s_bdev);
	if (unlikely(err && !ret))
		ret = err;