summaryrefslogtreecommitdiffstats
path: root/include/sys
diff options
context:
space:
mode:
authorTony Hutter <[email protected]>2022-09-08 10:32:30 -0700
committerTony Hutter <[email protected]>2022-09-14 09:57:44 -0700
commit7bbfac9d04dc06ba339be0540fd50e5166df8516 (patch)
tree0e424f857b97553ba4daa3293dbaa17a519308e4 /include/sys
parent2010c183bcc1a2edc2cb8ed5f2d065a35a891fec (diff)
zed: Fix config_sync autoexpand flood
Users were seeing floods of `config_sync` events when autoexpand was enabled. This happened because all "disk status change" udev events invoke the autoexpand codepath, which calls zpool_relabel_disk(), which in turn cause another "disk status change" event to happen, in a feedback loop. Note that "disk status change" happens every time a user calls close() on a block device. This commit breaks the feedback loop by only allowing an autoexpand to happen if the disk actually changed size. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Tony Hutter <[email protected]> Closes: #7132 Closes: #7366 Closes #13729
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/sysevent/dev.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/sys/sysevent/dev.h b/include/sys/sysevent/dev.h
index 1117538d8..2418bbad4 100644
--- a/include/sys/sysevent/dev.h
+++ b/include/sys/sysevent/dev.h
@@ -244,6 +244,9 @@ extern "C" {
#define DEV_PATH "path"
#define DEV_IS_PART "is_slice"
#define DEV_SIZE "dev_size"
+
+/* Size of the whole parent block device (if dev is a partition) */
+#define DEV_PARENT_SIZE "dev_parent_size"
#endif /* __linux__ */
#define EV_V1 1