On Sat, Feb 10, 2001 at 08:57:41AM -0800, Christopher McCrory wrote:
> Hello...
> 
> 
>  From amcheck:
> ...
>       Amanda Backup Client Hosts Check
> --------------------------------
> ERROR: dev: [can not access /dev/root (/): No such file or directory]
> ...
> 
> This happens on 2.4.2pl1 but not 2.4.2
> 
> System: Linux (RedHat 6.x)
> amanda recompiled using redhat srpms from rawhide (devel) tree
> 

The problem is that /proc/mounts list /dev/root as the device
for /, but /dev/root doesn't exist.

Could you try this patch. If the device doesn't exist, it will take
the entry from /etc/mtab.

Jean-Louis
-- 
Jean-Louis Martineau             email: [EMAIL PROTECTED] 
Departement IRO, Universite de Montreal
C.P. 6128, Succ. CENTRE-VILLE    Tel: (514) 343-6111 ext. 3529
Montreal, Canada, H3C 3J7        Fax: (514) 343-5834
--- client-src/getfsent.c.orig  Sat Feb 10 13:22:36 2001
+++ client-src/getfsent.c       Sat Feb 10 14:23:08 2001
@@ -462,18 +462,33 @@
 
   rc = 0;
   while(get_fstab_nextentry(fsent)) {
-    struct stat estat;
+    struct stat mntstat;
+    struct stat fsstat;
+    struct stat fsrstat;
+    int statmnt = -1, statfs = -1, statfsr = -1;
 
     amfree(rdev);
-    if ((fsent->mntdir != NULL
-        && stat(fsent->mntdir, &estat) != -1
-        && samefile(stats, &estat)) ||
-       (fsent->fsname != NULL
-        && stat(fsent->fsname, &estat) != -1
-        && samefile(stats, &estat)) ||
-       (fsent->fsname != NULL
-        && stat((rdev = dev2rdev(fsent->fsname)), &estat) != -1
-        && samefile(stats, &estat))) {
+
+    if(fsent->mntdir != NULL &&
+       (statmnt = stat(fsent->mntdir, &mntstat)) == -1)
+      continue;
+
+    if(fsent->fsname != NULL) {
+      statfs = stat(fsent->fsname, &fsstat);
+      statfsr = stat((rdev = dev2rdev(fsent->fsname)), &fsrstat);
+      if(statfs == -1 && statfsr == -1)
+        continue;
+    }
+
+    if((fsent->mntdir != NULL &&
+       statmnt != -1 &&
+        samefile(stats, &mntstat)) || 
+       (fsent->fsname != NULL &&
+       statfs != -1 &&
+        samefile(stats, &fsstat)) ||
+       (fsent->fsname != NULL &&
+       statfsr != -1 &&
+        samefile(stats, &fsrstat))) {
       rc = 1;
       break;
     }
@@ -588,6 +603,15 @@
     close_fstab();
 
     name = newstralloc(name, "/usr");
+    if(search_fstab(name, &fsent)) {
+       printf("Found %s mount for %s:\n",
+              is_local_fstype(&fsent)? "local" : "remote", name);
+       print_entry(&fsent);
+    }
+    else 
+       printf("Mount for %s not found\n", name);
+
+    name = newstralloc(name, "/");
     if(search_fstab(name, &fsent)) {
        printf("Found %s mount for %s:\n",
               is_local_fstype(&fsent)? "local" : "remote", name);

Reply via email to