Default directory used for 'zpool import' broken (/dev/dsk)?

Jan Beich jbeich at tormail.org
Mon May 14 23:10:35 UTC 2012


Andriy Gapon <avg at FreeBSD.org> writes:

> on 14/05/2012 19:11 Andriy Gapon said the following:
>
>> on 14/05/2012 18:19 Fabian Keil said the following:
>>> The following patch seems to work for me:
>>>
>>> ####
>>> commit 7ec69700f2d6944a61f5c7a826e67f46fa160221
>>> Author: Fabian Keil <fk at fabiankeil.de>
>>> Date:   Mon May 12 16:53:56 2012 +0200
>>>
>>>     Default to searching vdevs in /dev. /dev/dsk doesn't exist on FreeBSD.
>>>     
>>>     Fixes import issues if no cachefile exists and -d isn't used:
>>>     
>>>     fk at r500 ~ $sudo zpool import wde2
>>>     cannot open '/dev/dsk': must be an absolute path
>> 
>> Hah, so this hasn't been fixed actually.
>> Thank you for the patch!
>> 
>>> diff --git a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
>>> index fe76250..5d1e454 100644
>>> --- a/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
>>> +++ b/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c
>>> @@ -1909,7 +1909,7 @@ zpool_do_import(int argc, char **argv)
>>>  
>>>  	if (searchdirs == NULL) {
>>>  		searchdirs = safe_malloc(sizeof (char *));
>>> -		searchdirs[0] = "/dev/dsk";
>>> +		searchdirs[0] = "/dev";
>>>  		nsearch = 1;
>>>  	}
>>> ####
>>>
>>> The cachefile part is speculation ...
>> 
>> 
>
> Not sure if the following is also necessary, but it looks like it
> makes sense:

It looks like bin/155104 which affects zdb -e.

>
> --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
> +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c
> @@ -1145,7 +1145,7 @@ zpool_find_import_impl
>  	char *end, **dir = iarg->path;
>  	size_t pathleft;
>  	nvlist_t *ret = NULL;
> -	static char *default_dir = "/dev/dsk";
> +	static char *default_dir = "/dev";
>  	pool_list_t pools = { 0 };
>  	pool_entry_t *pe, *penext;
>  	vdev_entry_t *ve, *venext;
>
> I am not sure if zpool_find_import_impl is ever called with empty/zero
> paths/path in the importargs_t parameter.


More information about the freebsd-current mailing list