1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-23 21:35:11 +03:00

write_cd_rules: identity-based persistence

Bryan Kadzban wrote:
> Marco d'Itri wrote:
> > Bryan Kadzban wrote:
> >
> > > This is a sort of follow-up of my path-based persistence patch for
> > > net devices; it's the opposite type of addition for CD symlinks.
> >
> > Looks good. I am attaching a slightly reformatted version, I think it
> > should be applied.
>
> That's probably a lot more clear than my version anyway: what you posted
> looks like it does basically the same thing, just with some changes in
> the order and sense of checks.
This commit is contained in:
Marco d'Itri 2006-11-27 10:34:43 +01:00 committed by Kay Sievers
parent 26133d54e0
commit 64e6d9dd70

View File

@ -50,6 +50,38 @@ if [ -z "$ID_CDROM" ]; then
exit 1
fi
if [ "$1" ]; then
METHOD="$1"
else
METHOD='by-path'
fi
case "$METHOD" in
by-path)
if [ -z "$ID_PATH" ]; then
echo "$DEVPATH not supported by path_id. by-id may work." >&2
exit 1
fi
RULE="ENV{ID_PATH}==\"$ID_PATH\""
;;
by-id)
if [ "$ID_SERIAL" ]; then
RULE="ENV{ID_SERIAL}==\"$ID_SERIAL\""
elif [ "$ID_MODEL" -a "$ID_REVISION" ]; then
RULE="ENV{ID_MODEL}==\"$ID_MODEL\", ENV{ID_REVISION}==\"$ID_REVISION\""
else
echo "$DEVPATH not supported by ata_id. by-path may work." >&2
exit 1
fi
;;
*)
echo "Invalid argument (must be either by-path or by-id)." >&2
exit 1
;;
esac
# Prevent concurrent processes from modifying the file at the same time.
lock_rules_file
@ -58,7 +90,7 @@ choose_rules_file
link_num=$(find_next_available 'cdrom[0-9]*')
match="ENV{ID_CDROM}==\"?*\", ENV{ID_PATH}==\"$ID_PATH\""
match="ENV{ID_CDROM}==\"?*\", $RULE"
comment="$ID_MODEL ($ID_PATH)"