btrfS: collapse btrfs_handle_error() into __btrfs_handle_fs_error()
authorAnand Jain <Anand.Jain@oracle.com>
Thu, 4 Jan 2018 10:01:55 +0000 (18:01 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 22 Jan 2018 15:08:20 +0000 (16:08 +0100)
There is no other consumer for btrfs_handle_error() other than
__btrfs_handle_fs_error(), further this function quite small.
Merge it into its parent.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
[ reformat comment ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/super.c

index 786e8bc04f9c443e864f4dfd92fefaa9778f309c..6e71a2a783630ac15d2d910fd0613347c4a260ac 100644 (file)
@@ -107,28 +107,6 @@ const char *btrfs_decode_error(int errno)
        return errstr;
 }
 
-/* btrfs handle error by forcing the filesystem readonly */
-static void btrfs_handle_error(struct btrfs_fs_info *fs_info)
-{
-       struct super_block *sb = fs_info->sb;
-
-       if (sb_rdonly(sb))
-               return;
-
-       sb->s_flags |= SB_RDONLY;
-       btrfs_info(fs_info, "forced readonly");
-       /*
-        * Note that a running device replace operation is not
-        * canceled here although there is no way to update
-        * the progress. It would add the risk of a deadlock,
-        * therefore the canceling is omitted. The only penalty
-        * is that some I/O remains active until the procedure
-        * completes. The next time when the filesystem is
-        * mounted writeable again, the device replace
-        * operation continues.
-        */
-}
-
 /*
  * __btrfs_handle_fs_error decodes expected errors from the caller and
  * invokes the approciate error response.
@@ -175,8 +153,23 @@ void __btrfs_handle_fs_error(struct btrfs_fs_info *fs_info, const char *function
        set_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state);
 
        /* Don't go through full error handling during mount */
-       if (sb->s_flags & SB_BORN)
-               btrfs_handle_error(fs_info);
+       if (!(sb->s_flags & SB_BORN))
+               return;
+
+       if (sb_rdonly(sb))
+               return;
+
+       /* btrfs handle error by forcing the filesystem readonly */
+       sb->s_flags |= SB_RDONLY;
+       btrfs_info(fs_info, "forced readonly");
+       /*
+        * Note that a running device replace operation is not canceled here
+        * although there is no way to update the progress. It would add the
+        * risk of a deadlock, therefore the canceling is omitted. The only
+        * penalty is that some I/O remains active until the procedure
+        * completes. The next time when the filesystem is mounted writeable
+        * again, the device replace operation continues.
+        */
 }
 
 #ifdef CONFIG_PRINTK