• Lukas Czerner's avatar
    ext4: fix error handling in ext4_fill_super() · 07aa2ea1
    Lukas Czerner authored
    There are some places in ext4_fill_super() where we would not return
    proper error code if something fails. The confusion is caused probably
    due to the fact that we have two "kind-of" return variables 'ret'and
    'err'.
    
    'ret' is used to return error code from ext4_fill_super() where err is
    used to store return values from other functions within ext4_fill_super().
    However some places were missing the obligatory 'ret = err'. We could
    put the assignment where it is missing, but we can have better "future
    proof" solution. Or we could convert the code to use just one, but it
    would require more rewrites.
    
    This commit fixes the problem by returning value from 'err' variable if
    it is set and 'ret' otherwise in error handling branch of the
    ext4_fill_super(). The reasoning is that 'ret' value is often set to
    default "-EINVAL" or explicit value, where 'err' is used to store
    return value from other functions and should be otherwise zero.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=48431Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    07aa2ea1
super.c 150 KB