• Anand Jain's avatar
    Btrfs: __btrfs_std_error() logic should be consistent w/out CONFIG_PRINTK defined · 57d816a1
    Anand Jain authored
    error handling logic behaves differently with or without
    CONFIG_PRINTK defined, since there are two copies of the same
    function which a bit of different logic
    
    One, when CONFIG_PRINTK is defined, code is
    
    __btrfs_std_error(..)
    {
    ::
           save_error_info(fs_info);
           if (sb->s_flags & MS_BORN)
                   btrfs_handle_error(fs_info);
    }
    
    and two when CONFIG_PRINTK is not defined, the code is
    
    __btrfs_std_error(..)
    {
    ::
           if (sb->s_flags & MS_BORN) {
                   save_error_info(fs_info);
                   btrfs_handle_error(fs_info);
            }
    }
    
    I doubt if this was intentional ? and appear to have caused since
    we maintain two copies of the same function and they got diverged
    with commits.
    
    Now to decide which logic is correct reviewed changes as below,
    
     533574c6
    Commit added two copies of this function
    
     cf79ffb5
    Commit made change to only one copy of the function and to the
    copy when CONFIG_PRINTK is defined.
    
    To fix this, instead of maintaining two copies of same function
    approach, maintain single function, and just put the extra
    portion of the code under CONFIG_PRINTK define.
    
    This patch just does that. And keeps code of with CONFIG_PRINTK
    defined.
    Signed-off-by: default avatarAnand Jain <anand.jain@oracle.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    57d816a1
super.c 59.3 KB