if (m && m->extroot)
return -1;
- if (m) switch (type) {
- case TYPE_HOTPLUG:
+ if (type == TYPE_HOTPLUG)
blockd_notify(device, m, pr);
- if (m->autofs)
- return 0;
- if (!auto_mount)
- return -1;
- break;
- case TYPE_AUTOFS:
- if (!m->autofs)
- return -1;
- break;
- case TYPE_DEV:
- if (m->autofs)
- return -1;
- break;
- } else if (type == TYPE_HOTPLUG) {
- blockd_notify(device, NULL, pr);
- }
if (m) {
- char *target = m->target;
char _target[32];
+ char *target;
int err = 0;
+ switch (type) {
+ case TYPE_HOTPLUG:
+ if (m->autofs)
+ return 0;
+ if (!auto_mount)
+ return -1;
+ break;
+ case TYPE_AUTOFS:
+ if (!m->autofs)
+ return -1;
+ break;
+ case TYPE_DEV:
+ if (m->autofs)
+ return -1;
+ break;
+ }
+
if (m->autofs) {
snprintf(_target, sizeof(_target), "/tmp/run/blockd/%s", device);
target = _target;
- }
- if (!target) {
+ } else if (m->target) {
+ target = m->target;
+ } else {
snprintf(_target, sizeof(_target), "/mnt/%s", device);
target = _target;
}