]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Udev rules: remove zvol compat symlinks (without the leading zvol/)
authorJustin Gottula <justin@jgottula.com>
Tue, 6 Jul 2021 20:41:17 +0000 (13:41 -0700)
committerGitHub <noreply@github.com>
Tue, 6 Jul 2021 20:41:17 +0000 (13:41 -0700)
This is a potentially arguable change, because it removes some
compatibility cruft that certain systems or people may have come to rely
on (either a very long time ago, or unwisely in recent times).

On the other hand, it's been literally over a decade since OpenZFS
switched to the strategy of using opaque numbered /dev/zd* device nodes,
with the canonical zvol access path being a directory tree of symlinks
created by udev rules inside /dev/zvol/*. (See #102.) Even at the time,
the /dev/* scheme was labeled as being for "compatibility".

This commit removes the second tree of symlinks located directly at
/dev/*, under the assumption that anybody with any sense has been using
the intended /dev/zvol/* path for a very very long time now.

(The more I think about this, the more I anticipate that some large
fraction of people will have been blissfully unaware that the intention
has been for them to use the /dev/zvol/* tree all along, and they will
have come to rely upon the /dev/* tree simply because it's been there
this whole time despite being a compat thing.)

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed-by: Neal Gompa <ngompa@datto.com>
Signed-off-by: Justin Gottula <justin@jgottula.com>
Closes #12303

udev/rules.d/60-zvol.rules.in

index a3c7d2acf752a8c0bcf3686ce47edaafec26351f..9a2a473a841c145e5e33e0183648a0ec914942d8 100644 (file)
@@ -1,6 +1,11 @@
 # Persistent links for zvol
 #
 # persistent disk links: /dev/zvol/dataset_name
-# also creates compatibility symlink of /dev/dataset_name
+#
+# NOTE: We used to also create an additional tree of zvol symlinks located at
+#       /dev/dataset_name (i.e. without the 'zvol' path component) for
+#       compatibility reasons. These are no longer created anymore, and should
+#       not be relied upon.
+#       
 
-KERNEL=="zd*", SUBSYSTEM=="block", ACTION=="add|change", PROGRAM=="@udevdir@/zvol_id $devnode", SYMLINK+="zvol/%c %c"
+KERNEL=="zd*", SUBSYSTEM=="block", ACTION=="add|change", PROGRAM=="@udevdir@/zvol_id $devnode", SYMLINK+="zvol/%c"