fs: add support for HFSX Plus file system
[project/mountd.git] / mount.c
diff --git a/mount.c b/mount.c
index 3994149bf12a4b4d3a46170f8009948b1b5ad63b..2d5114cf8cefcc5c972f7941c24bcf204d6062a6 100644 (file)
--- a/mount.c
+++ b/mount.c
 #include <sys/wait.h>
 #include <sys/inotify.h>
 #include <sys/mount.h>
-#include <sys/stat.h>
-#include <sys/types.h>
 #include <glob.h>
 #include <libgen.h>
 #include <poll.h>
-#include <dirent.h>
 #include <syslog.h>
 
 #include "include/log.h"
@@ -397,11 +394,12 @@ static char* mount_get_serial(char *dev)
                                {
                                        int id;
                                        struct stat buf;
-                                       char tmp3[64];
+                                       char tmp3[strlen(namelist[n]->d_name) + strlen(dev) + 31];
                                        int ret;
                                        *t = 0;
                                        id = atoi(namelist[n]->d_name);
                                        *t = ':';
+
                                        sprintf(tmp3, "/sys/bus/scsi/devices/%s/block:%s/", namelist[n]->d_name, dev);
                                        ret = stat(tmp3, &buf);
                                        if(ret)
@@ -774,11 +772,13 @@ static void mount_enum_drives(void)
                }
                if(!check_block(q->dev)||del)
                {
-                       int err;
-
-                       err = mount_dev_del(q);
                        if (q->status == STATUS_MOUNTED || q->status == STATUS_EXPIRED) {
                                char dev_link[64];
+                               int err;
+
+                               system_printf("ACTION=remove DEVICE=%s NAME=%s /sbin/hotplug-call mount", q->dev, q->name);
+
+                               err = mount_dev_del(q);
 
                                snprintf(dev_link, sizeof(dev_link), "%s%s", uci_path, q->name);
                                if (err == -EBUSY) {
@@ -792,7 +792,6 @@ static void mount_enum_drives(void)
                                        log_printf("unlinking %s\n", dev_link);
                                        unlink(dev_link);
                                }
-                               system_printf("ACTION=remove DEVICE=%s NAME=%s /sbin/hotplug-call mount", q->dev, q->name);
                        }
 
                        p->prev->next = p->next;