mirror of
https://github.com/mhx/dwarfs.git
synced 2025-09-13 06:16:55 -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) {
|
if (detail_level > 0) {
|
||||||
info["block_size"] = stbuf.bsize;
|
info["block_size"] = meta_.block_size();
|
||||||
info["block_count"] = fsinfo.block_count;
|
info["block_count"] = fsinfo.block_count;
|
||||||
info["inode_count"] = stbuf.files;
|
info["inode_count"] = stbuf.files;
|
||||||
if (auto ps = meta_.preferred_path_separator()) {
|
if (auto ps = meta_.preferred_path_separator()) {
|
||||||
@ -1710,7 +1710,9 @@ template <typename LoggerPolicy>
|
|||||||
int metadata_<LoggerPolicy>::statvfs(vfs_stat* stbuf) const {
|
int metadata_<LoggerPolicy>::statvfs(vfs_stat* stbuf) const {
|
||||||
::memset(stbuf, 0, sizeof(*stbuf));
|
::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->frsize = 1UL;
|
||||||
stbuf->blocks = meta_.total_fs_size();
|
stbuf->blocks = meta_.total_fs_size();
|
||||||
if (!options_.enable_nlink) {
|
if (!options_.enable_nlink) {
|
||||||
|
@ -404,7 +404,7 @@ char const* reference_v0_2 = R"(
|
|||||||
},
|
},
|
||||||
"statvfs": {
|
"statvfs": {
|
||||||
"f_blocks": 10614,
|
"f_blocks": 10614,
|
||||||
"f_bsize": 1024,
|
"f_bsize": 1,
|
||||||
"f_files": 33
|
"f_files": 33
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -777,7 +777,7 @@ char const* reference = R"(
|
|||||||
},
|
},
|
||||||
"statvfs": {
|
"statvfs": {
|
||||||
"f_blocks": 10614,
|
"f_blocks": 10614,
|
||||||
"f_bsize": 1024,
|
"f_bsize": 1,
|
||||||
"f_files": 36
|
"f_files": 36
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -822,7 +822,7 @@ void check_compat(logger& lgr, filesystem_v2 const& fs,
|
|||||||
vfs_stat vfsbuf;
|
vfs_stat vfsbuf;
|
||||||
fs.statvfs(&vfsbuf);
|
fs.statvfs(&vfsbuf);
|
||||||
|
|
||||||
EXPECT_EQ(1024, vfsbuf.bsize);
|
EXPECT_EQ(1, vfsbuf.bsize);
|
||||||
EXPECT_EQ(1, vfsbuf.frsize);
|
EXPECT_EQ(1, vfsbuf.frsize);
|
||||||
EXPECT_EQ(10614, vfsbuf.blocks);
|
EXPECT_EQ(10614, vfsbuf.blocks);
|
||||||
EXPECT_EQ(33 + 3 * has_devices, vfsbuf.files);
|
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;
|
vfs_stat vfsbuf;
|
||||||
fs.statvfs(&vfsbuf);
|
fs.statvfs(&vfsbuf);
|
||||||
|
|
||||||
EXPECT_EQ(1 << block_size_bits, vfsbuf.bsize);
|
EXPECT_EQ(1, vfsbuf.bsize);
|
||||||
EXPECT_EQ(1, vfsbuf.frsize);
|
EXPECT_EQ(1, vfsbuf.frsize);
|
||||||
if (enable_nlink) {
|
if (enable_nlink) {
|
||||||
EXPECT_EQ(access_fail ? 2046934 : 2056934, vfsbuf.blocks);
|
EXPECT_EQ(access_fail ? 2046934 : 2056934, vfsbuf.blocks);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user