@@ -138,7 +138,7 @@ static void mount_add_list(char *name, char *dev, char *serial,
char *vendor, char *model, char *rev, int ignore, char *size, char *sector_size, int fs)
{
struct mount *mount;
- char tmp[64], tmp2[64];
+ char tmp[64], run_mount_path[64];
mount = malloc(sizeof(struct mount));
INIT_LIST_HEAD(&mount->list);
@@ -154,12 +154,18 @@ static void mount_add_list(char *name, char *dev, char *serial,
mount->mounted = 0;
mount->fs = fs;
list_add(&mount->list, &mounts);
+
+ snprintf(run_mount_path, 64, "/tmp/run/mountd/%s", dev);
+ if (is_mounted(NULL, run_mount_path)) {
+ log_printf("mount point %s already exists!\n", run_mount_path);
+ mount->mounted = 1;
+ return;
+ }
if (!mount->ignore)
{
log_printf("new mount : %s -> %s (%s)\n", name, dev, fs_names[mount->fs]);
snprintf(tmp, 64, "%s%s", uci_path, name);
- snprintf(tmp2, 64, "/tmp/run/mountd/%s", dev);
- symlink(tmp2, tmp);
+ symlink(run_mount_path, tmp);
if (!mount_new("/tmp/run/mountd/", dev))
system_printf("ACTION=add DEVICE=%s NAME=%s /sbin/hotplug-call mount", dev, name);
}