diff options
author | Tony Hutter <[email protected]> | 2022-09-08 10:32:30 -0700 |
---|---|---|
committer | Tony Hutter <[email protected]> | 2022-09-14 09:57:44 -0700 |
commit | 7bbfac9d04dc06ba339be0540fd50e5166df8516 (patch) | |
tree | 0e424f857b97553ba4daa3293dbaa17a519308e4 /include/sys | |
parent | 2010c183bcc1a2edc2cb8ed5f2d065a35a891fec (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.h | 3 |
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 |