OpenCloudOS-Kernel/fs/jbd
Hidehiro Kawai cbe5f466f6 jbd: don't abort if flushing file data failed
In ordered mode, the current jbd aborts the journal if a file data buffer
has an error.  But this behavior is unintended, and we found that it has
been adopted accidentally.

This patch undoes it and just calls printk() instead of aborting the
journal.  Additionally, set AS_EIO into the address_space object of the
failed buffer which is submitted by journal_do_submit_data() so that
fsync() can get -EIO.

Missing error checkings are also added to inform errors on file data
buffers to the user.  The following buffers are targeted.

  (a) the buffer which has already been written out by pdflush
  (b) the buffer which has been unlocked before scanned in the
      t_locked_list loop

[akpm@linux-foundation.org: improve grammar in a printk]
Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
Acked-by: Jan Kara <jack@suse.cz>
Cc: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-25 10:53:32 -07:00
..
Makefile Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
checkpoint.c spinlock: lockbreak cleanup 2008-01-30 13:31:20 +01:00
commit.c jbd: don't abort if flushing file data failed 2008-07-25 10:53:32 -07:00
journal.c jbd: unexport journal_update_superblock 2008-07-25 10:53:32 -07:00
recovery.c jbd: correctly unescape journal data blocks 2008-03-19 18:53:36 -07:00
revoke.c jbd: tidy up revoke cache initialisation and destruction 2008-07-25 10:53:32 -07:00
transaction.c jbd: fix race between free buffer and commit transaction 2008-07-25 10:53:32 -07:00