mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Make unloading the key more robust
The unit was failing instead of stopping if someone manually unloaded the key before stopping the unit (zfs unload-key is failing on an unavailable key). Follow a similar logic than for loading the key, checking for the key status before unloading it. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Richard Laager <rlaager@wiktel.com> Co-authored-by: Didier Roche <didrocks@ubuntu.com> Signed-off-by: Didier Roche <didrocks@ubuntu.com> Closes #10477
This commit is contained in:
		
							parent
							
								
									b717f9b95e
								
							
						
					
					
						commit
						ceadc0dbbd
					
				| @ -173,6 +173,12 @@ set -eu;\ | |||||||
| keystatus=\"\$\$(@sbindir@/zfs get -H -o value keystatus \"${dataset}\")\";\ | keystatus=\"\$\$(@sbindir@/zfs get -H -o value keystatus \"${dataset}\")\";\ | ||||||
| [ \"\$\$keystatus\" = \"unavailable\" ] || exit 0;\ | [ \"\$\$keystatus\" = \"unavailable\" ] || exit 0;\ | ||||||
| ${keyloadscript}'" | ${keyloadscript}'" | ||||||
|  |       keyunloadcmd="\ | ||||||
|  | /bin/sh -c '\ | ||||||
|  | set -eu;\ | ||||||
|  | keystatus=\"\$\$(@sbindir@/zfs get -H -o value keystatus \"${dataset}\")\";\ | ||||||
|  | [ \"\$\$keystatus\" = \"available\" ] || exit 0;\ | ||||||
|  | @sbindir@/zfs unload-key \"${dataset}\"'" | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -199,7 +205,7 @@ ${keymountdep} | |||||||
| Type=oneshot | Type=oneshot | ||||||
| RemainAfterExit=yes | RemainAfterExit=yes | ||||||
| ExecStart=${keyloadcmd} | ExecStart=${keyloadcmd} | ||||||
| ExecStop=@sbindir@/zfs unload-key '${dataset}'"   > "${dest_norm}/${keyloadunit}" | ExecStop=${keyunloadcmd}"   > "${dest_norm}/${keyloadunit}" | ||||||
|     fi |     fi | ||||||
|     # Update the dependencies for the mount file to want the |     # Update the dependencies for the mount file to want the | ||||||
|     # key-loading unit. |     # key-loading unit. | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Jean-Baptiste Lallement
						Jean-Baptiste Lallement