Sarah Jelinek wrote:
> Code review comments. Please don't putback until zpool status info
> gathering is resolved...
>
> td_be.c:
> -What is the meant by 'conflicting names' in this comment:
>
> BUG:"zpool import -f -R /mnt/zpools -a" has problems if root pools have
> 146 * conflicting names
There is a problem with zpool import -R <root> -a in that if you have
pools with the same name, the importing isn't done right - the pools are
imported to the same mount point. This could happen if you installed
LiveCD to two different disks on the same system.
>
> -Why is this code conditional:
An oversight - I will remove it.
>
>
> 254 #if 0
> 255 if ((err = be_mount(be)) != 0) {
> 256 continue;
> 257 }
> 258 #endif
>
> -It seems as if you are not deleting all the tmpbemp directories that
> could have possibly been created?
I try to do it with only one temp directory, creating more only if the
be_unmount() fails for some reason. More explanation follows...
> mount:
> 313 /* if BE not previously mounted, unmount it */
> 314 if (was_be_mounted && be_unmount(be) != 0) {
> 315 /* if unmount fails, directory will be busy */
> 316 tmpbemp = NULL; /* new mountpt created if
> needed */
> 317 }
> 318 } /* for each BE */
I coded this to delete any temp mount point it created. If the
be_unmount() fails, there is still data there, and I won't be able to
delete the directory. By marking tmpbemp as NULL, the next time through
the BE list loop, a new temp directory will be created (if there is
another BE in the list).
> thanks,
> sarah
> *****
> You set it to NULL but in done:
>
> done:
> 320 if (tmpbemp != NULL)
> 321 (void) rmdir(tmpbemp);
When I'm done: with listing the BEs, I delete the last temp directory here.
>
> Don't you need to rmdir each instance of this directory for each be?
I have tried to code this to use only a single temp directory, and only
to create another temp directory if I couldn't be_unmount() the last one.
I think I'm doing this right. Have I made this clear?
William
>
>
> 322 }
>
>
>
> William Schumann wrote:
>> Request for code review: 909 - Target Discovery must find Solaris
>> instances in BEs
>>
>> Target Discovery must provide the disk devices containing Snap Boot
>> Environments to the GUI so that user is informed of Solaris BEs on a
>> disk.
>>
>> be_list() provides a list of Solaris Boot environments, but requires
>> some preparation, since zpools must first be imported
>>
>> This code performs two workarounds:
>>
>> Workaround: INST_RELEASE, which contains release information, is
>> missing from
>> Caiman, and is in the process of being re-established. Code to read
>> INST_RELEASE is conditionally coded
>>
>> Workaround: 'zpool status' is used to retrieve the disk device name
>> holding the
>> Solaris BE. The output of 'zpool status' was not designed to be
>> parsed; the
>> parsing of this output is perhaps unreliable. An outstanding CR
>> exists to
>> supply this functionality:
>> 6667439 A parsable option for zpool status and zpool list is needed
>>
>>
>> http://cr.opensolaris.org/~wmsch/bug-909/
>> http://defect.opensolaris.org/bz/show_bug.cgi?id=909
>>
>> William
>>
>>
> _______________________________________________
> caiman-discuss mailing list
> caiman-discuss at opensolaris.org
> http://mail.opensolaris.org/mailman/listinfo/caiman-discuss