mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2025-01-10 18:43:26 +08:00
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>
This commit is contained in:
parent
bbb60e4fef
commit
c70674387e
@ -109,6 +109,19 @@ This can be disabled by setting
|
||||
to the
|
||||
boolean value of false. This setting defaults to true.
|
||||
.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
|
||||
This boolean relation controls whether or not
|
||||
.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 latch_descr *ldesc = 0;
|
||||
const char *message;
|
||||
int def_yn, answer, ans;
|
||||
int def_yn, answer, ans, broken_system_clock;
|
||||
int print_answer = 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)) {
|
||||
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);
|
||||
|
||||
profile_get_string(ctx->profile, "problems", key,
|
||||
|
Loading…
Reference in New Issue
Block a user