Unix afsd: Check for mountpoint /afs first
[openafs.git] / src / afsd / afsd.c
index 4c9cdd7..495ceb3 100644 (file)
@@ -1918,6 +1918,7 @@ afsd_run(void)
 {
     static char rn[] = "afsd"; /*Name of this routine */
     struct afsconf_dir *cdir;  /* config dir */
+    struct stat statbuf;
     int lookupResult;          /*Result of GetLocalCellName() */
     int i;
     afs_int32 code;            /*Result of fork() */
@@ -1951,6 +1952,16 @@ afsd_run(void)
        exit(1);
     }
 
+    if (stat(afsd_cacheMountDir, &statbuf)) {
+       printf("afsd: Mountpoint %s missing.\n", afsd_cacheMountDir);
+        exit(1);
+    } else {
+       if (!S_ISDIR(statbuf.st_mode)) {
+           printf("afsd: Mountpoint %s is not a directory.\n", afsd_cacheMountDir);
+           exit(1);
+       }
+    }
+
     /* do some random computations in memcache case to get things to work
      * reasonably no matter which parameters you set.
      */