ext2: Use ext2_clear_super_error() in ext2_sync_fs()
authorJan Blunck <jblunck@suse.de>
Wed, 14 Apr 2010 12:38:33 +0000 (14:38 +0200)
committerJan Kara <jack@suse.cz>
Fri, 21 May 2010 17:30:38 +0000 (19:30 +0200)
ext2_sync_fs() used to duplicate the code from ext2_clear_super_error().

Signed-off-by: Jan Blunck <jblunck@suse.de>
Signed-off-by: Jan Kara <jack@suse.cz>
fs/ext2/super.c

index 42e4a303b6758628aa87c23d18acbcb6e13110c5..8e8b675ac202e74ee1b276919124463587e11f6a 100644 (file)
@@ -1120,8 +1120,8 @@ static void ext2_clear_super_error(struct super_block *sb)
                 * be remapped.  Nothing we can do but to retry the
                 * write and hope for the best.
                 */
-               printk(KERN_ERR "EXT2-fs: %s previous I/O error to "
-                      "superblock detected", sb->s_id);
+               ext2_msg(sb, KERN_ERR,
+                      "previous I/O error to superblock detected\n");
                clear_buffer_write_io_error(sbh);
                set_buffer_uptodate(sbh);
        }
@@ -1161,23 +1161,9 @@ static void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es)
 static int ext2_sync_fs(struct super_block *sb, int wait)
 {
        struct ext2_super_block *es = EXT2_SB(sb)->s_es;
-       struct buffer_head *sbh = EXT2_SB(sb)->s_sbh;
 
        lock_kernel();
-       if (buffer_write_io_error(sbh)) {
-               /*
-                * Oh, dear.  A previous attempt to write the
-                * superblock failed.  This could happen because the
-                * USB device was yanked out.  Or it could happen to
-                * be a transient write error and maybe the block will
-                * be remapped.  Nothing we can do but to retry the
-                * write and hope for the best.
-                */
-               ext2_msg(sb, KERN_ERR,
-                      "previous I/O error to superblock detected\n");
-               clear_buffer_write_io_error(sbh);
-               set_buffer_uptodate(sbh);
-       }
+       ext2_clear_super_error(sb);
 
        if (es->s_state & cpu_to_le16(EXT2_VALID_FS)) {
                ext2_debug("setting valid to 0\n");