- LockRes();
- for (device=NULL,i=0; (device=(DEVRES *)GetNextRes(R_DEVICE, (RES *)device)); i++) {
- if (i >= MAX_DEVICES) {
- UnlockRes();
- Emsg1(M_ABORT, 0, _("Too many Device Resources. Max=%d\n"), MAX_DEVICES);
- }
- Dmsg1(90, "calling init_dev %s\n", device->device_name);
- device->dev = init_dev(&shm->dev[i], device->device_name);
- /* Copy some attributes from the Device Resource to the DEV structure */
- if (device->dev) {
- device->dev->capabilities = device->cap_bits;
- device->dev->min_block_size = device->min_block_size;
- device->dev->max_block_size = device->max_block_size;
- device->dev->max_volume_jobs = device->max_volume_jobs;
- device->dev->max_volume_files = device->max_volume_files;
- device->dev->max_volume_size = device->max_volume_size;
- device->dev->max_file_size = device->max_file_size;
- device->dev->volume_capacity = device->volume_capacity;
- device->dev->max_rewind_wait = device->max_rewind_wait;
- device->dev->max_open_wait = device->max_open_wait;
- device->dev->device = device;
- }
- Dmsg1(10, "SD init done %s\n", device->device_name);
- if (!device->dev) {
- Emsg1(M_ERROR, 0, _("Could not initialize %s\n"), device->device_name);
- }
- if (device->cap_bits & CAP_ALWAYSOPEN) {
- Dmsg1(20, "calling open_device %s\n", device->device_name);
- if (!open_device(device->dev)) {
- Emsg1(M_ERROR, 0, _("Could not open device %s\n"), device->device_name);
- }
- }
- if (device->cap_bits & CAP_AUTOMOUNT && device->dev &&
- device->dev->state & ST_OPENED) {
- DEV_BLOCK *block;
- JCR *jcr;
- block = new_block(device->dev);
- jcr = new_jcr(sizeof(JCR), stored_free_jcr);
- switch (read_dev_volume_label(jcr, device->dev, block)) {
- case VOL_OK:
- break;
- default:
- Emsg1(M_WARNING, 0, _("Could not mount device %s\n"), device->device_name);
- break;
- }
- free_jcr(jcr);
- free_block(block);
- }
- }
- UnlockRes();
- device = NULL;