mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	i-t: fix root=zfs:AUTO
IFS= would break loops in import_pool(), which would fault any automatic import Additionally $ZFS_BOOTFS from cmdline would interfere with find_rootfs() If many pools were present, same thing could happen across multiple find_rootfs() runs, so bail out early and clean up in error path Suggested-by: @nachtgeist Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #11278 Closes #11838
This commit is contained in:
		
							parent
							
								
									1bb4b5a5ae
								
							
						
					
					
						commit
						46aec6d439
					
				| @ -94,8 +94,8 @@ find_rootfs() | |||||||
| 
 | 
 | ||||||
| 	# Not boot fs here, export it and later try again.. | 	# Not boot fs here, export it and later try again.. | ||||||
| 	"${ZPOOL}" export "$pool" | 	"${ZPOOL}" export "$pool" | ||||||
| 	POOL_IMPORTED="" | 	POOL_IMPORTED= | ||||||
| 
 | 	ZFS_BOOTFS= | ||||||
| 	return 1 | 	return 1 | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -815,6 +815,11 @@ mountroot() | |||||||
| 	then | 	then | ||||||
| 		# Try to detect both pool and root fs. | 		# Try to detect both pool and root fs. | ||||||
| 
 | 
 | ||||||
|  | 		# If we got here, that means we don't have a hint so as to | ||||||
|  | 		# the root dataset, but with root=zfs:AUTO on cmdline, | ||||||
|  | 		# this says "zfs:AUTO" here and interferes with checks later | ||||||
|  | 		ZFS_BOOTFS= | ||||||
|  | 
 | ||||||
| 		[ "$quiet" != "y" ] && \ | 		[ "$quiet" != "y" ] && \ | ||||||
| 		    zfs_log_begin_msg "Attempting to import additional pools." | 		    zfs_log_begin_msg "Attempting to import additional pools." | ||||||
| 
 | 
 | ||||||
| @ -832,8 +837,8 @@ mountroot() | |||||||
| 		do | 		do | ||||||
| 			[ -z "$pool" ] && continue | 			[ -z "$pool" ] && continue | ||||||
| 
 | 
 | ||||||
| 			import_pool "$pool" | 			IFS="$OLD_IFS" import_pool "$pool" | ||||||
| 			find_rootfs "$pool" | 			IFS="$OLD_IFS" find_rootfs "$pool" && break | ||||||
| 		done | 		done | ||||||
| 		IFS="$OLD_IFS" | 		IFS="$OLD_IFS" | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 наб
						наб