mirror of https://github.com/vitalif/e2fsprogs
e2fsck: Add new e2fsck.conf option: broken_system_clock
The broken_system_clock allows the time to be in the future when in preen mode. It's useful for people who have, as the name implies, broken system clocks. Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>bitmap-optimize
parent
bbb60e4fef
commit
c70674387e
|
@ -109,6 +109,19 @@ This can be disabled by setting
|
||||||
to the
|
to the
|
||||||
boolean value of false. This setting defaults to true.
|
boolean value of false. This setting defaults to true.
|
||||||
.TP
|
.TP
|
||||||
|
.I broken_system_clock
|
||||||
|
The
|
||||||
|
.BR e2fsck (8)
|
||||||
|
program has some hueristics that assume that the system clock is
|
||||||
|
correct. In addition, many system programs make similar assumptions.
|
||||||
|
For example, the UUID library depends on time not going backwards in
|
||||||
|
order for it to be able to make its guarantees about issuing universally
|
||||||
|
unique ID's. Systems with broken system clocks, are well, broken.
|
||||||
|
However, broken system clocks, particularly in embedded systems, do
|
||||||
|
exist. If true, e2fsck will not abort a preen check if it detects a
|
||||||
|
last mounted or last write time in the superblock in the future. This
|
||||||
|
setting defaults to false.
|
||||||
|
.TP
|
||||||
.I clear_test_fs_flag
|
.I clear_test_fs_flag
|
||||||
This boolean relation controls whether or not
|
This boolean relation controls whether or not
|
||||||
.BR e2fsck (8)
|
.BR e2fsck (8)
|
||||||
|
|
|
@ -1741,7 +1741,7 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
|
||||||
struct e2fsck_problem *ptr;
|
struct e2fsck_problem *ptr;
|
||||||
struct latch_descr *ldesc = 0;
|
struct latch_descr *ldesc = 0;
|
||||||
const char *message;
|
const char *message;
|
||||||
int def_yn, answer, ans;
|
int def_yn, answer, ans, broken_system_clock;
|
||||||
int print_answer = 0;
|
int print_answer = 0;
|
||||||
int suppress = 0;
|
int suppress = 0;
|
||||||
|
|
||||||
|
@ -1753,6 +1753,15 @@ int fix_problem(e2fsck_t ctx, problem_t code, struct problem_context *pctx)
|
||||||
if (!(ptr->flags & PR_CONFIG)) {
|
if (!(ptr->flags & PR_CONFIG)) {
|
||||||
char key[9], *new_desc;
|
char key[9], *new_desc;
|
||||||
|
|
||||||
|
if ((code == PR_0_FUTURE_SB_LAST_MOUNT) ||
|
||||||
|
(code == PR_0_FUTURE_SB_LAST_WRITE)) {
|
||||||
|
profile_get_boolean(ctx->profile, "options",
|
||||||
|
"broken_system_clock", 0, 0,
|
||||||
|
&broken_system_clock);
|
||||||
|
if (broken_system_clock)
|
||||||
|
ptr->flags |= PR_PREEN_OK;
|
||||||
|
}
|
||||||
|
|
||||||
sprintf(key, "0x%06x", code);
|
sprintf(key, "0x%06x", code);
|
||||||
|
|
||||||
profile_get_string(ctx->profile, "problems", key,
|
profile_get_string(ctx->profile, "problems", key,
|
||||||
|
|
Loading…
Reference in New Issue