Panu Matilainen 6d40e7
changeset:   6253:a5f774e61a47
Panu Matilainen 6d40e7
user:        Panu Matilainen <pmatilai@redhat.com>
Panu Matilainen 6d40e7
date:        Thu Aug 09 21:50:56 2007 +0300
Panu Matilainen 6d40e7
files:       lib/fs.c
Panu Matilainen 6d40e7
description:
Panu Matilainen 6d40e7
Skip stale and unaccessible (FUSE) mountpoints (rhbz#190496, 220991)
Panu Matilainen 6d40e7
Ported from rpm5.org work of Jeff Johnson.
Panu Matilainen 6d40e7
Panu Matilainen 6d40e7
Panu Matilainen 6d40e7
diff -r 0cda3105a3c4 -r a5f774e61a47 lib/fs.c
Panu Matilainen 6d40e7
--- a/lib/fs.c	Thu Aug 09 19:26:05 2007 +0300
Panu Matilainen 6d40e7
+++ b/lib/fs.c	Thu Aug 09 21:50:56 2007 +0300
Panu Matilainen 6d40e7
@@ -109,11 +109,17 @@ static int getFilesystemList(void)
Panu Matilainen 6d40e7
 	filesystems[i].mntPoint = fsnames[i] = fsn;
Panu Matilainen 6d40e7
 	
Panu Matilainen 6d40e7
 	if (stat(filesystems[i].mntPoint, &sb)) {
Panu Matilainen 6d40e7
-	    rpmError(RPMERR_STAT, _("failed to stat %s: %s\n"), fsnames[i],
Panu Matilainen 6d40e7
+	    switch (errno) {
Panu Matilainen 6d40e7
+	    case EACCES: /* fuse mount */
Panu Matilainen 6d40e7
+	    case ESTALE: 
Panu Matilainen 6d40e7
+		continue;
Panu Matilainen 6d40e7
+	    default:
Panu Matilainen 6d40e7
+	    	rpmError(RPMERR_STAT, _("failed to stat %s: %s\n"), fsnames[i],
Panu Matilainen 6d40e7
 			strerror(errno));
Panu Matilainen 6d40e7
 
Panu Matilainen 6d40e7
-	    freeFilesystems();
Panu Matilainen 6d40e7
-	    return 1;
Panu Matilainen 6d40e7
+	    	freeFilesystems();
Panu Matilainen 6d40e7
+	    	return 1;
Panu Matilainen 6d40e7
+	    }
Panu Matilainen 6d40e7
 	}
Panu Matilainen 6d40e7
 	
Panu Matilainen 6d40e7
 	filesystems[i].dev = sb.st_dev;
Panu Matilainen 6d40e7