mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 11:29:36 +03:00
100790a8dd
If the LED is being accessed by another process when we try to update it, the update will be lost. Add a retry loop which will read the state of the LED and update it until the LED is in the correct state. The number of times this will occur is limited to ensure that the ZEDlet won't hang ZED. Refactor to remove duplication so setting of the LED occurs in only one place. Cleanup a couple of the warnings generated by shellcheck which weren't the result of specific choices by the author. Several notes and warnings are still present but removing them would make the code less clear or require adding lines to tell shellcheck to ignore the warning. Remove ",i" from the documentation at the top of the file which appears to be a typographic error. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Christopher Voltz <christopher.voltz@hpe.com> Closes #5795 |
||
---|---|---|
.. | ||
all-debug.sh | ||
all-syslog.sh | ||
data-notify.sh | ||
generic-notify.sh | ||
pool_import-led.sh | ||
README | ||
resilver_finish-notify.sh | ||
scrub_finish-notify.sh | ||
statechange-led.sh | ||
statechange-notify.sh | ||
vdev_attach-led.sh | ||
vdev_clear-led.sh | ||
zed-functions.sh | ||
zed.rc |
Shell scripts are the recommended choice for ZEDLETs that mostly call other utilities and do relatively little data manipulation. Shell scripts MUST work on both bash and dash. Shell scripts MUST run cleanly through ShellCheck: http://www.shellcheck.net/ General functions reside in "zed-functions.sh". Use them where applicable. Additional references that may be of use: Google Shell Style Guide https://github.com/google/styleguide/blob/gh-pages/shell.xml Dash as /bin/sh https://wiki.ubuntu.com/DashAsBinSh Common shell script mistakes http://www.pixelbeat.org/programming/shell_script_mistakes.html Filenames and Pathnames in Shell: How to do it Correctly http://www.dwheeler.com/essays/filenames-in-shell.html Autoconf: Portable Shell Programming https://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell Please BE CONSISTENT with the existing style, check for errors, minimize dependencies where possible, try to be portable, and comment anything non-obvious. Festina lente.