fs/adfs: bigdir: Fix an error code in adfs_fplus_read()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 24 Jan 2020 10:15:37 +0000 (13:15 +0300)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 25 Jan 2020 16:31:59 +0000 (11:31 -0500)
This code accidentally returns success, but it should return the
-EIO error code from adfs_fplus_validate_header().

Acked-by: Russell King <rmk+kernel@armlinux.org.uk>
Fixes: d79288b4f61b ("fs/adfs: bigdir: calculate and validate directory checkbyte")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/adfs/dir_fplus.c

index 48ea299..4a15924 100644 (file)
@@ -114,7 +114,8 @@ static int adfs_fplus_read(struct super_block *sb, u32 indaddr,
                return ret;
 
        dir->bighead = h = (void *)dir->bhs[0]->b_data;
-       if (adfs_fplus_validate_header(h)) {
+       ret = adfs_fplus_validate_header(h);
+       if (ret) {
                adfs_error(sb, "dir %06x has malformed header", indaddr);
                goto out;
        }