This patch backports following upstream commits in order to solve some of the EXT3...
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 26 Mar 2010 18:52:07 +0000 (18:52 +0000)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 26 Mar 2010 18:52:07 +0000 (18:52 +0000)
commit972baef97e68e5446115107c96d56c5967940376
tree4a2762b37f8053ebf1a8a85676fe094d91ac6d43
parent814a2e2839c8e5f9071709f6bceb980d6be63a87
This patch backports following upstream commits in order to solve some of the EXT3 FS related problems;

* orphan_list_check_on_destroy_inode.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/56ccd891a32e6409700786737953906426512ff7
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=a6c15c2b0fbfd5c0a84f5f0e1e3f20f85d2b8692

* don-t-read-inode-block-if-buf-has-write-error.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/1e7d951fa2bd7d49121aff0ec7eb0331e3d5eeb5
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=95450f5a7e53d5752ce1a0d0b8282e10fe745ae0

* error-in-ext3_lookup-if-corruption-found.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/f1d52243f69747ee601d671ec1b98a7363ce0597
Filesystem errors should be logged and not silently ignored

* fix-accessing-freed-memory-in-ext3_abort.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/f863ab8749fca8d167b357357ed7492c1c6d530d
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.32.y.git;a=commitdiff_plain;h=44d6f78756560e95903de239e10f8a40a6eae444

* make_fdatasync_not_sync_metadata.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/1d29962ae5187764989ede9ec0d0777d2f489345
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=3d61f75eefedf75914ab4453c67aaa2ee64bcf93

* add_checks_for_errors_from_jbd.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/f38c319731f010b1c36c25ed591f79bcb557d2f2
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=2d7c820e56ce83b23daee9eb5343730fb309418e

* add_missing_error_checks.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/8f0e6faf83721162a77cb5df5c483e4799bea22b
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=cbe5f466f6995e10a10c7ae66d6dc8608f08a6b8

The original patch does the following two things:

  (1) stop aborting the journal on file data write errors, instead
      just call printk() and set AS_EIO to appropriate address_space
      objects
  (2) add missing error checks for file data writes

This patch does only (2).

* dont_dirty_original_metadata_buffer_on_abort.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/d003fa1a88c857795ca7e102eefbf26c9088aa66
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=7ad7445f60fe4d46c4c9d2a9463db180d2a3b270

* fix_commit_code_to_properly_abort_journal.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/232632e87d9bc83b89d97f98f311d67d45e0e6dd
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=7a266e75cf5a1efd20d084408a1b7f1a185496dd

* fix_journal_overflow_issues.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/74361d7e55f28847e3b7eda4a4563d02ab001537
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=5bc833feaa8b2236265764e7e81f44937be46eda
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=5b9a499d77e9dd39c9e6611ea10c56a31604f274

* fix_typo_in_recovery_code.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/da999401f4bedf317b2e7dcd3c9163b1a433ba3c
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=439aeec639d7c57f3561054a6d315c40fd24bb74

* jbd-properly-dispose-of-unmapped-data-buffers.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/841d34d702702c85c7b8cc31a185e48ce3ca0a8e
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=fc80c44277b3c92d808b73e9d40e120229aa4b6a

* jdb-abort-when-failed-to-log-metadata-buffers.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/7de4ddac8020dcb2078b7237650e972ecfd112cf
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=44519faf22ad6ce924ad0352d3dc200d9e0b66e8

* fix-assertion-failure-in-fs-jbd-checkpoint.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/268ff9d67ed3269e5d84914aabd30d06ee89f563
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.32.y.git;a=commitdiff_plain;h=d4beaf4ab5f89496f2bcf67db62ad95d99bfeff6

* fix-error-handling-for-checkpoint-io.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/e1ef6b77a95b8e02255dfa02fef06e2231e92645
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=4afe978530702c934dfdb11f54073136818b2119

* jbd-test-BH_Write_EIO-to-detect-errors-on-metadata.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/1a8ede62acc03d3b2baa98d02189685a4e30044f
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9f818b4ac04f53458d0354950b4f229f54be4dbf

* handle-corrupted-orphan-list-at-mount.patch - http://github.com/caglar10ur/linux-2.6.27.y/commit/6003003452a5faaa0b2d1deb6356ebf8d4e2fe3f
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=ae76dd9a6b5bbe5315fb7028e03f68f75b8538f3

 fs/ext3/fsync.c         |    3 +
 fs/ext3/ialloc.c        |   69 ++++++++++++++++++++++++--------------
 fs/ext3/inode.c         |   30 +++++++++++++---
 fs/ext3/ioctl.c         |   12 ++++--
 fs/ext3/namei.c         |   15 ++++++++
 fs/ext3/super.c         |   22 +++++++++---
 fs/jbd/checkpoint.c     |   61 +++++++++++++++++++++++----------
 fs/jbd/commit.c         |   87 ++++++++++++++++++++++++++----------------------
 fs/jbd/journal.c        |   28 ++++++++++++---
 fs/jbd/recovery.c       |    9 +++-
 fs/jbd/transaction.c    |   33 ++++++++++++++++--
 include/linux/ext3_fs.h |    1
 include/linux/jbd.h     |    4 +-
 13 files changed, 266 insertions(+), 108 deletions(-)
kernel-2.6.spec
linux-2.6.950-ext3_backports.patch [new file with mode: 0644]