mirror of https://gitee.com/openkylin/linux.git
UBIFS: use EROFS when emulating failures
When the debugging failure emulation is enabled and UBIFS decides to emulate an I/O error, it uses EIO error code. In which case UBIFS switches into R/O mode later on. The for the user-space is that when a failure is emulated, the file-system sometimes returns EIO and sometimes EROFS. This makes it more difficult to implement user-space tests for the failure mode. Let's be consistent and return EROFS in all the cases. This patch is an improvement for the debugging code and does not affect the functionality at all. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
This commit is contained in:
parent
14ffd5d0b0
commit
1a29af8bd7
|
@ -2650,7 +2650,7 @@ int dbg_leb_read(struct ubi_volume_desc *desc, int lnum, char *buf, int offset,
|
|||
int len, int check)
|
||||
{
|
||||
if (in_failure_mode(desc))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return ubi_leb_read(desc, lnum, buf, offset, len, check);
|
||||
}
|
||||
|
||||
|
@ -2660,7 +2660,7 @@ int dbg_leb_write(struct ubi_volume_desc *desc, int lnum, const void *buf,
|
|||
int err, failing;
|
||||
|
||||
if (in_failure_mode(desc))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
failing = do_fail(desc, lnum, 1);
|
||||
if (failing)
|
||||
cut_data(buf, len);
|
||||
|
@ -2668,7 +2668,7 @@ int dbg_leb_write(struct ubi_volume_desc *desc, int lnum, const void *buf,
|
|||
if (err)
|
||||
return err;
|
||||
if (failing)
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2678,12 +2678,12 @@ int dbg_leb_change(struct ubi_volume_desc *desc, int lnum, const void *buf,
|
|||
int err;
|
||||
|
||||
if (do_fail(desc, lnum, 1))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
err = ubi_leb_change(desc, lnum, buf, len, dtype);
|
||||
if (err)
|
||||
return err;
|
||||
if (do_fail(desc, lnum, 1))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2692,12 +2692,12 @@ int dbg_leb_erase(struct ubi_volume_desc *desc, int lnum)
|
|||
int err;
|
||||
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
err = ubi_leb_erase(desc, lnum);
|
||||
if (err)
|
||||
return err;
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -2706,19 +2706,19 @@ int dbg_leb_unmap(struct ubi_volume_desc *desc, int lnum)
|
|||
int err;
|
||||
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
err = ubi_leb_unmap(desc, lnum);
|
||||
if (err)
|
||||
return err;
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dbg_is_mapped(struct ubi_volume_desc *desc, int lnum)
|
||||
{
|
||||
if (in_failure_mode(desc))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return ubi_is_mapped(desc, lnum);
|
||||
}
|
||||
|
||||
|
@ -2727,12 +2727,12 @@ int dbg_leb_map(struct ubi_volume_desc *desc, int lnum, int dtype)
|
|||
int err;
|
||||
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
err = ubi_leb_map(desc, lnum, dtype);
|
||||
if (err)
|
||||
return err;
|
||||
if (do_fail(desc, lnum, 0))
|
||||
return -EIO;
|
||||
return -EROFS;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue