From 9b40b62ec837e3702cc44645c99c776f5adbcfb5 Mon Sep 17 00:00:00 2001 From: henrygd Date: Tue, 13 Oct 2026 10:32:59 -0400 Subject: [PATCH] docs(agent): explain btrfs ioctl fallback incomplete-probe semantics --- agent/btrfs/btrfs_linux.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/agent/btrfs/btrfs_linux.go b/agent/btrfs/btrfs_linux.go index f095524c7..d1e928928 100644 --- a/agent/btrfs/btrfs_linux.go +++ b/agent/btrfs/btrfs_linux.go @@ -195,7 +195,11 @@ func (fs *Filesystem) readDevicesIoctl(mountpoint string, attached int) (capacit members = append(members, member) } if probed != info.numDevices { - return false, false // a device appeared or vanished mid-probe + // A device appeared or vanished mid-probe, or a replace is running + // (old kernels count the devid 0 target, which is never probed). + // A member already confirmed missing keeps DEGRADED, matching the + // sysfs path where missing evidence outranks an incomplete read. + return false, false } // The kernel counts missing members too, so a number above the sysfs // devices count means one is missing even if no path proved it. Members