NTFS: Remove bogus setting of PageError in ntfs_read_compressed_block().
authorAnton Altaparmakov <aia21@cantab.net>
Thu, 8 Sep 2005 19:35:33 +0000 (20:35 +0100)
committerAnton Altaparmakov <aia21@cantab.net>
Thu, 8 Sep 2005 19:35:33 +0000 (20:35 +0100)
Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
fs/ntfs/ChangeLog
fs/ntfs/compress.c
fs/ntfs/file.c

index 1168d3ed2bec44a3bf275f5ef32515c75b12c474..96224c0207977054ef2ffc7c82ae441949efa616 100644 (file)
@@ -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...
index 6d265cfd49aaea3b49aed8dc5618e65253ccec94..25d24106f893a691cbc7cc5010cf4b181dbdfc8a 100644 (file)
@@ -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 @@ lock_retry_remap:
                        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 @@ lock_retry_remap:
                                        "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 @@ err_out:
        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);
index e0f530ce6b996280eb718792a9ac048a348845c2..be9fd1dd423d18de8bab0c320f52af5d5ba48392 100644 (file)
@@ -1,7 +1,7 @@
 /*
- * file.c - NTFS kernel file operations. Part of the Linux-NTFS project.
+ * 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;