* Really crude automatic Volume name creation using
* LabelFormat
*/
-int newVolume(JCR *jcr)
+int newVolume(JCR *jcr, MEDIA_DBR *mr)
{
- MEDIA_DBR mr;
POOL_DBR pr;
char name[MAXSTRING];
- memset(&mr, 0, sizeof(mr));
memset(&pr, 0, sizeof(pr));
/* See if we can create a new Volume */
if (db_get_pool_record(jcr->db, &pr) && pr.LabelFormat[0] &&
pr.LabelFormat[0] != '*') {
if (pr.MaxVols == 0 || pr.NumVols < pr.MaxVols) {
- memset(&mr, 0, sizeof(mr));
- mr.PoolId = jcr->PoolId;
- strcpy(mr.MediaType, jcr->store->media_type);
+ mr->PoolId = jcr->PoolId;
+ strcpy(mr->MediaType, jcr->store->media_type);
strcpy(name, pr.LabelFormat);
strcat(name, "%04d");
- sprintf(mr.VolumeName, name, ++pr.NumVols);
- strcpy(mr.VolStatus, "Append");
- mr.Recycle = pr.Recycle;
- mr.VolRetention = pr.VolRetention;
- if (db_create_media_record(jcr->db, &mr) &&
+ sprintf(mr->VolumeName, name, ++pr.NumVols);
+ strcpy(mr->VolStatus, "Append");
+ mr->Recycle = pr.Recycle;
+ mr->VolRetention = pr.VolRetention;
+ if (db_create_media_record(jcr->db, mr) &&
db_update_pool_record(jcr->db, &pr) == 1) {
- Dmsg1(90, "Created new Volume=%s\n", mr.VolumeName);
+ Dmsg1(90, "Created new Volume=%s\n", mr->VolumeName);
return 1;
} else {
Jmsg(jcr, M_ERROR, 0, "%s", db_strerror(jcr->db));