From: Kern S. <ke...@us...> - 2005-08-31 15:29:49
|
Update of /cvsroot/bacula/bacula/src/stored In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20774/src/stored Modified Files: dircmd.c reserve.c Log Message: - Final tweaks to build Win32. - Enable debug code in ua_label.c - Remove devices from the Volume list even if no Volume is in drive. Hopefully this fixes Arno's problem of multiple volumes listed in the same drive. Index: reserve.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/stored/reserve.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- reserve.c 24 Aug 2005 09:00:34 -0000 1.25 +++ reserve.c 31 Aug 2005 15:29:40 -0000 1.26 @@ -163,7 +163,24 @@ VOLRES vol, *fvol; if (dev->VolHdr.VolumeName[0] == 0) { - return false; + /* + * Our device has no VolumeName listed, but + * search the list for any Volume attached to + * this device and remove it. + */ + P(vol_list_lock); + foreach_dlist(fvol, vol_list) { + if (fvol && fvol->dev == dev) { + vol_list->remove(fvol); + if (fvol->vol_name) { + free(fvol->vol_name); + } + free(fvol); + break; + } + } + V(vol_list_lock); + return fvol != NULL; } Dmsg1(400, "free_volume %s\n", dev->VolHdr.VolumeName); vol.vol_name = bstrdup(dev->VolHdr.VolumeName); Index: dircmd.c =================================================================== RCS file: /cvsroot/bacula/bacula/src/stored/dircmd.c,v retrieving revision 1.115 retrieving revision 1.116 diff -u -d -r1.115 -r1.116 --- dircmd.c 13 Aug 2005 15:22:33 -0000 1.115 +++ dircmd.c 31 Aug 2005 15:29:40 -0000 1.116 @@ -406,6 +406,7 @@ dev->VolHdr.VolumeName); break; } + /* Relabel request. If oldname matches, continue */ if (strcmp(oldname, dev->VolHdr.VolumeName) != 0) { bnet_fsend(dir, _("3921 Wrong volume mounted.\n")); |