mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-12 13:59:46 -04:00
fix: duf reports odd sizes due to using bsize
instead of frsize
This is arguably a bug in `duf`, but the `bsize` value reported by DwarFS isn't that relevant, so we might just change it here.
This commit is contained in:
parent
125121b7ca
commit
965fa93b3f
@ -983,7 +983,7 @@ metadata_<LoggerPolicy>::info_as_dynamic(int detail_level,
|
||||
}
|
||||
|
||||
if (detail_level > 0) {
|
||||
info["block_size"] = stbuf.bsize;
|
||||
info["block_size"] = meta_.block_size();
|
||||
info["block_count"] = fsinfo.block_count;
|
||||
info["inode_count"] = stbuf.files;
|
||||
if (auto ps = meta_.preferred_path_separator()) {
|
||||
@ -1710,7 +1710,9 @@ template <typename LoggerPolicy>
|
||||
int metadata_<LoggerPolicy>::statvfs(vfs_stat* stbuf) const {
|
||||
::memset(stbuf, 0, sizeof(*stbuf));
|
||||
|
||||
stbuf->bsize = meta_.block_size();
|
||||
// Make sure bsize and frsize are the same, as doing otherwise can confuse
|
||||
// some applications (such as `duf`).
|
||||
stbuf->bsize = 1UL;
|
||||
stbuf->frsize = 1UL;
|
||||
stbuf->blocks = meta_.total_fs_size();
|
||||
if (!options_.enable_nlink) {
|
||||
|
@ -404,7 +404,7 @@ char const* reference_v0_2 = R"(
|
||||
},
|
||||
"statvfs": {
|
||||
"f_blocks": 10614,
|
||||
"f_bsize": 1024,
|
||||
"f_bsize": 1,
|
||||
"f_files": 33
|
||||
}
|
||||
}
|
||||
@ -777,7 +777,7 @@ char const* reference = R"(
|
||||
},
|
||||
"statvfs": {
|
||||
"f_blocks": 10614,
|
||||
"f_bsize": 1024,
|
||||
"f_bsize": 1,
|
||||
"f_files": 36
|
||||
}
|
||||
}
|
||||
@ -822,7 +822,7 @@ void check_compat(logger& lgr, filesystem_v2 const& fs,
|
||||
vfs_stat vfsbuf;
|
||||
fs.statvfs(&vfsbuf);
|
||||
|
||||
EXPECT_EQ(1024, vfsbuf.bsize);
|
||||
EXPECT_EQ(1, vfsbuf.bsize);
|
||||
EXPECT_EQ(1, vfsbuf.frsize);
|
||||
EXPECT_EQ(10614, vfsbuf.blocks);
|
||||
EXPECT_EQ(33 + 3 * has_devices, vfsbuf.files);
|
||||
|
@ -227,7 +227,7 @@ void basic_end_to_end_test(std::string const& compressor,
|
||||
vfs_stat vfsbuf;
|
||||
fs.statvfs(&vfsbuf);
|
||||
|
||||
EXPECT_EQ(1 << block_size_bits, vfsbuf.bsize);
|
||||
EXPECT_EQ(1, vfsbuf.bsize);
|
||||
EXPECT_EQ(1, vfsbuf.frsize);
|
||||
if (enable_nlink) {
|
||||
EXPECT_EQ(access_fail ? 2046934 : 2056934, vfsbuf.blocks);
|
||||
|
Loading…
x
Reference in New Issue
Block a user