According to xfs_admin(8):
-c 0|1 Enable (1) or disable (0) lazy-counters in the
filesys‐
tem.
Lazy-counters may not be disabled on Version 5 su‐
perblock filesystems (i.e. those with metadata CRCs en‐
abled).
[...]
According to mkfs.xfs(1):
-m global_metadata_options
Section Name: [metadata]
These options specify metadata format options that ei‐
ther apply to the entire filesystem or aren't easily
characterised by a specific functionality group. The
valid global_metadata_options are:
[...]
crc=value
This is used to create a filesystem which
maintains and checks CRC information in all
metadata objects on disk. The value is ei‐
ther 0 to disable the feature, or 1 to en‐
able the use of CRCs.
[...]
By default, mkfs.xfs will enable metadata
CRCs.
Consistently with the above, the first "xfs_admin" test case in
"generator/actions_core.ml", which attempts to disable lazy counters,
always fails:
534/550 test_xfs_admin_0
libguestfs: error: xfs_admin: /dev/sda1: Cannot disable lazy-counters on V5 fs
We can resolve this test failure in three ways:
(1) Extend do_mkfs() [daemon/mkfs.c], possibly even introduce
do_mkfs_xfs(), and permit the caller to specify "-m crc=0" for
mkfs.xfs. Then use this option when the temporary filesystem is
created in the XFS test that disables lazy counters.
(2) Extend the "guestfs_int_xfsinfo" structure in the libguestfs-common
project, with an "xfs_crc" field. Extend parse_xfs_info()
[daemon/xfs.c] to populate the field from "meta-data=...crc=[01]".
Modify the test case to check the following post-condition:
xfs_crc || xfs_lazycount == 0
instead of the current
xfs_lazycount == 0
effectively ignoring "xfs_lazycount" when "xfs_crc" is set.
(3) Remove the test altogether that attempts to disable lazy counters
after filesystem creation.
Given that new XFS filesystems are created with metadata CRCs enabled by
default, and several XFS features depend on metadata CRCs being enabled,
this patch implements option (3).
Signed-off-by: Laszlo Ersek <lersek(a)redhat.com>
---
generator/actions_core.ml | 6 ------
1 file changed, 6 deletions(-)
diff --git a/generator/actions_core.ml b/generator/actions_core.ml
index bb602ee02dfc..5933282dcf90 100644
--- a/generator/actions_core.ml
+++ b/generator/actions_core.ml
@@ -7644,12 +7644,6 @@ with zeroes)." };
style = RErr, [String (Device, "device")], [OBool "extunwritten";
OBool "imgfile"; OBool "v2log"; OBool "projid32bit"; OBool
"lazycounter"; OString "label"; OString "uuid"];
optional = Some "xfs";
tests = [
- InitEmpty, Always, TestResult (
- [["part_disk"; "/dev/sda"; "mbr"];
- ["mkfs"; "xfs"; "/dev/sda1"; "";
"NOARG"; ""; ""; "NOARG"];
- ["xfs_admin"; "/dev/sda1"; ""; "";
""; ""; "false"; "NOARG"; "NOARG"];
- ["mount"; "/dev/sda1"; "/"];
- ["xfs_info"; "/"]], "ret->xfs_lazycount ==
0"), [];
InitEmpty, Always, TestResultString (
[["part_disk"; "/dev/sda"; "mbr"];
["mkfs"; "xfs"; "/dev/sda1"; "";
"NOARG"; ""; ""; "NOARG"];
--
2.19.1.3.g30247aa5d201