* amd/amfs_host.c (amfs_host_umount): We do not want to pass
authorDaniel Ottavio <ottavio@fsl.cs.sunysb.edu>
Mon, 2 May 2005 00:27:47 +0000 (00:27 +0000)
committerDaniel Ottavio <ottavio@fsl.cs.sunysb.edu>
Mon, 2 May 2005 00:27:47 +0000 (00:27 +0000)
ENOENT as an error because if the directory does not exists our
work is done anyway.

* conf/umount/umount_linux.c (umount_fs): If we are successful or
there was an ENOENT, remove the mount entry from the mtab file.

ChangeLog
amd/amfs_host.c
conf/umount/umount_linux.c

index b1d0487ee669b76debd8714052ce6fb92a42424b..f1fc4df0b211b7a21aba1da7c6a1bdab336a0d0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2005-05-01  Daniel P. Ottavio  <dottavio@ic.sunysb.edu>
+
+       * amd/amfs_host.c (amfs_host_umount): We do not want to pass
+       ENOENT as an error because if the directory does not exists our
+       work is done anyway.
+
+       * conf/umount/umount_linux.c (umount_fs): If we are successful or
+       there was an ENOENT, remove the mount entry from the mtab file.
+       
 2005-05-01  Ion Badulescu  <ionut@moisil.badula.org>
 
        * amd/nfs_subr.c: am_fh definition moved here from amd.h;
index 910c70518266b7c15a2bfe398e7debec71cb56c1..781b2793cb3009200b9347b1aecb7942b7541f1d 100644 (file)
@@ -37,7 +37,7 @@
  * SUCH DAMAGE.
  *
  *
- * $Id: amfs_host.c,v 1.30 2005/04/07 05:50:38 ezk Exp $
+ * $Id: amfs_host.c,v 1.31 2005/05/02 00:27:47 ottavio Exp $
  *
  */
 
@@ -573,7 +573,15 @@ amfs_host_umount(am_node *am, mntfs *mf)
        * Keep track of errors
        */
       if (error) {
-       if (!xerror)
+       /*
+        * If we have not already set xerror and error is not ENOENT,
+        * then set xerror equal to error and log it.
+        * 'xerror' is the return value for this function.
+        *
+        * We do not want to pass ENOENT as an error because if the
+        * directory does not exists our work is done anyway. 
+        */
+       if (!xerror && error != ENOENT) 
          xerror = error;
        if (error != EBUSY) {
          errno = error;
index 8e9f6ec406c6facb6f6dcb7523da6e342e57c7c7..280437d2349fbdd6a76b75be58ebad0c317c0a26 100644 (file)
@@ -37,7 +37,7 @@
  * SUCH DAMAGE.
  *
  *
- * $Id: umount_linux.c,v 1.3 2005/03/05 07:09:17 ezk Exp $
+ * $Id: umount_linux.c,v 1.4 2005/05/02 00:27:47 ottavio Exp $
  *
  */
 
@@ -124,7 +124,11 @@ umount_fs(char *mntdir, const char *mnttabname, int on_autofs)
     }
     dlog("Finished unmount(%s)", mp_save->mnt->mnt_dir);
 
-    if (!error) {
+    /*
+     * If we are successful or there was an ENOENT, remove
+     * the mount entry from the mtab file.
+     */
+    if (!error || error == ENOENT) {
 #ifdef HAVE_LOOP_DEVICE
       /* look for loop=/dev/loopX in mnt_opts */
       char *opt, *xopts=NULL;