ck: Merged FSCK+CK -> CK flag namespace
Unintentionally arriving at the infamous "fsck" name is a bit funny. But it's probably something we don't want to conflict with if we can help it, on the off chance we want a sort of lfs3_fsck function in the future. (This is all hypothetical, but lfs3_fsck may expect an unmounted filesystem, and have a much larger scope than lfs3_fs_ck. Though typing this out now I'm realizing how confusing that might be...) Since lfs3_file_ck and lfs3_fs_ck share a subset of flags, it's not _entirely_ unreasonable for lfs3_file_ck and lfs3_fs_ck to share the same namespace. There's a risk of confusing users around what flags lfs3_file_ck accepts, but we have asserts, and said flags (LFS3_CK_MKCONSISTENT, LFS3_CK_LOOKAHEAD, etc) just don't really make sense in lfs3_file_ck: fs file y LFS3_CK_MKCONSISTENT 0x00000800 Make the filesystem consistent y LFS3_CK_LOOKAHEAD 0x00001000 Repopulate lookahead buffer y LFS3_CK_LOOKGBMAP 0x00002000 Repopulate the gbmap y LFS3_CK_PREERASE* 0x00004000 Pre-erase unused blocks y LFS3_CK_COMPACTMETA 0x00008000 Compact metadata logs y y LFS3_CK_CKMETA 0x00010000 Check metadata checksums y y LFS3_CK_CKDATA 0x00020000 Check metadata + data checksums y y LFS3_CK_REPAIRMETA* 0x00040000 Repair data blocks y y LFS3_CK_REPAIRDATA* 0x00080000 Repair metadata + data blocks * Planned Another option would be to document that lfs3_fs_ck accepts both LFS3_CK_* _and_ LFS3_GC_* flags, but I worry that would be more confusing. It would also lock us into supporting all LFs3_GC_* flags in lfs3_fs_ck, which may not always be the case. Though this is an argument for doing away with the whole LFS3_M/F/CK/GC/I_* duplication... (tbh another reason for this is to reduce the number of namespaces by at least one). No code changes.
This commit is contained in:
+14
-14
@@ -270,7 +270,7 @@ code = '''
|
||||
clobbered:;
|
||||
// find clobbered blocks with lfs3_fs_ck
|
||||
if (METHOD == 0) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => LFS3_ERR_CORRUPT;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => LFS3_ERR_CORRUPT;
|
||||
|
||||
// find clobbered blocks with lfs3_fs_gc
|
||||
} else if (METHOD == 1) {
|
||||
@@ -408,7 +408,7 @@ code = '''
|
||||
clobbered:;
|
||||
// find clobbered blocks with lfs3_fs_ck
|
||||
if (METHOD == 0) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => LFS3_ERR_CORRUPT;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => LFS3_ERR_CORRUPT;
|
||||
|
||||
// find clobbered blocks with lfs3_fs_gc
|
||||
} else if (METHOD == 1) {
|
||||
@@ -552,7 +552,7 @@ code = '''
|
||||
|
||||
// find clobbered blocks with lfs3_fs_ck
|
||||
if (METHOD == 0) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto detected;
|
||||
@@ -808,7 +808,7 @@ code = '''
|
||||
|
||||
// find clobbered blocks with lfs3_fs_ck
|
||||
if (METHOD == 0) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto detected;
|
||||
@@ -2827,14 +2827,14 @@ code = '''
|
||||
|
||||
// run ckdata?
|
||||
if (CKDATA) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
}
|
||||
// run ckmeta?
|
||||
} else if (CKMETA && !MTREEONLY) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
@@ -3145,14 +3145,14 @@ code = '''
|
||||
|
||||
// run ckdata?
|
||||
if (CKDATA) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
}
|
||||
// run ckmeta?
|
||||
} else if (CKMETA && !MTREEONLY) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
@@ -3561,14 +3561,14 @@ code = '''
|
||||
|
||||
// run ckdata?
|
||||
if (CKDATA) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_open;
|
||||
}
|
||||
// run ckmeta?
|
||||
} else if (CKMETA && !MTREEONLY) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_open;
|
||||
@@ -3846,14 +3846,14 @@ code = '''
|
||||
|
||||
// run ckdata?
|
||||
if (CKDATA) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
}
|
||||
// run ckmeta?
|
||||
} else if (CKMETA && !MTREEONLY) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
@@ -4450,14 +4450,14 @@ code = '''
|
||||
|
||||
// run ckdata?
|
||||
if (CKDATA) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
}
|
||||
// run ckmeta?
|
||||
} else if (CKMETA && !MTREEONLY) {
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA);
|
||||
int err = lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA);
|
||||
assert(!err || err == LFS3_ERR_CORRUPT);
|
||||
if (err == LFS3_ERR_CORRUPT) {
|
||||
goto corrupt_mounted;
|
||||
|
||||
+10
-10
@@ -1378,7 +1378,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// lfs3_fs_ckshould find the clobbered block
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => LFS3_ERR_CORRUPT;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => LFS3_ERR_CORRUPT;
|
||||
|
||||
lfs3_unmount(&lfs3) => 0;
|
||||
}
|
||||
@@ -1469,7 +1469,7 @@ code = '''
|
||||
|
||||
clobbered:;
|
||||
// lfs3_fs_ckshould find the clobbered block
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => LFS3_ERR_CORRUPT;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => LFS3_ERR_CORRUPT;
|
||||
|
||||
lfs3_unmount(&lfs3) => 0;
|
||||
}
|
||||
@@ -1565,7 +1565,7 @@ code = '''
|
||||
|
||||
// run lfs3_fs_ck
|
||||
} else if (AFTER == 3) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => 0;
|
||||
|
||||
struct lfs3_fsinfo fsinfo;
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
@@ -1731,7 +1731,7 @@ code = '''
|
||||
|
||||
// run lfs3_fs_ck
|
||||
} else if (AFTER == 3) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => 0;
|
||||
|
||||
struct lfs3_fsinfo fsinfo;
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
@@ -2010,11 +2010,11 @@ code = '''
|
||||
}
|
||||
|
||||
if (CKMETA && (fsinfo.flags & LFS3_I_CKMETA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => 0;
|
||||
}
|
||||
|
||||
if (CKDATA && (fsinfo.flags & LFS3_I_CKDATA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2245,11 +2245,11 @@ code = '''
|
||||
}
|
||||
|
||||
if (CKMETA && (fsinfo.flags & LFS3_I_CKMETA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => 0;
|
||||
}
|
||||
|
||||
if (CKDATA && (fsinfo.flags & LFS3_I_CKDATA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2416,11 +2416,11 @@ code = '''
|
||||
}
|
||||
|
||||
if (CKMETA && (fsinfo.flags & LFS3_I_CKMETA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKMETA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKMETA) => 0;
|
||||
}
|
||||
|
||||
if (CKDATA && (fsinfo.flags & LFS3_I_CKDATA)) {
|
||||
lfs3_fs_ck(&lfs3, LFS3_FSCK_CKDATA) => 0;
|
||||
lfs3_fs_ck(&lfs3, LFS3_CK_CKDATA) => 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user