]> Zhao Yanbai Git Server - minix.git/commitdiff
vfs/avfs: req_newdriver should use fs_sendrec
authorDavid van Moolenbroek <david@minix3.org>
Mon, 5 Dec 2011 09:52:46 +0000 (10:52 +0100)
committerDavid van Moolenbroek <david@minix3.org>
Mon, 5 Dec 2011 15:28:09 +0000 (16:28 +0100)
Using sendrec directly only results in problems. While it is not
clear whether using fs_sendrec is the best option, it is at least
an improvement.

Also remove some legacy cruft.

servers/avfs/comm.c
servers/avfs/request.c
servers/vfs/request.c

index b11b06e05cfc560c908f6577672e3d0b88301311..85b6d2f4922e93e6ac4cf5238478fe5a8edbb982 100644 (file)
@@ -125,10 +125,7 @@ PUBLIC int fs_sendrec(endpoint_t fs_e, message *reqmp)
        }
   }
 
-  if (reqmp->m_type == -EENTERMOUNT || reqmp->m_type == -ELEAVEMOUNT ||
-      reqmp->m_type == -ESYMLINK) {
-       reqmp->m_type = -reqmp->m_type;
-  } else if (force_sync != 0 && reqmp->m_type > 0) {
+  if (force_sync != 0 && reqmp->m_type > 0) {
        /* XXX: Keep this as long as we're interested in having support
         * for synchronous communication. */
        nested_fs_call(reqmp);
index f95c44ed132080d70f4bf58f2fb8bb124979f93f..be230da77cf19a928c9ca16e3ee60d3cc299f215 100644 (file)
@@ -1,10 +1,8 @@
-/* This file contains the wrapper functions for issueing a request
+/* This file contains the wrapper functions for issuing a request
  * and receiving response from FS processes.
  * Each function builds a request message according to the request
- * parameter, calls the most low-level fs_sendrec and copies
+ * parameter, calls the most low-level fs_sendrec, and copies
  * back the response.
- * The low-level fs_sendrec handles the recovery mechanism from
- * a dead driver and reissues the request.
  */
 
 #include "fs.h"
@@ -612,11 +610,6 @@ PUBLIC int req_newdriver(
   char *label
 )
 {
-/* Note: this is the only request function that doesn't use the
- * fs_sendrec internal routine, since we want to avoid the dead
- * driver recovery mechanism here. This function is actually called
- * during the recovery.
- */
   cp_grant_id_t grant_id;
   size_t len;
   message m;
@@ -635,11 +628,7 @@ PUBLIC int req_newdriver(
   m.REQ_PATH_LEN = len;
 
   /* Issue request */
-  if((r = sendrec(fs_e, &m)) != OK) {
-         printf("%s:%d VFS req_newdriver: error sending message %d to %d\n",
-                __FILE__, __LINE__, r, fs_e);
-         util_stacktrace();
-  }
+  r = fs_sendrec(fs_e, &m);
 
   cpf_revoke(grant_id);
 
@@ -647,7 +636,6 @@ PUBLIC int req_newdriver(
 }
 
 
-
 /*===========================================================================*
  *                             req_putnode                                  *
  *===========================================================================*/
index 834ae86316a6b4b71a2afcb6107014a8713c4ac7..137c338ef26bd8f8988cd9e38ba57d425383c57b 100644 (file)
@@ -1,10 +1,8 @@
-/* This file contains the wrapper functions for issueing a request
+/* This file contains the wrapper functions for issuing a request
  * and receiving response from FS processes.
  * Each function builds a request message according to the request
- * parameter, calls the most low-level fs_sendrec and copies
+ * parameter, calls the most low-level fs_sendrec, and copies
  * back the response.
- * The low-level fs_sendrec handles the recovery mechanism from
- * a dead driver and reissues the request.
  */
 
 #include "fs.h"
@@ -614,11 +612,6 @@ PUBLIC int req_newdriver(
   char *label
 )
 {
-/* Note: this is the only request function that doesn't use the 
- * fs_sendrec internal routine, since we want to avoid the dead
- * driver recovery mechanism here. This function is actually called 
- * during the recovery.
- */
   cp_grant_id_t grant_id;
   size_t len;
   message m;
@@ -637,11 +630,7 @@ PUBLIC int req_newdriver(
   m.REQ_PATH_LEN = len;
 
   /* Issue request */
-  if((r = sendrec(fs_e, &m)) != OK) {
-         printf("%s:%d VFS req_newdriver: error sending message %d to %d\n",
-                __FILE__, __LINE__, r, fs_e);
-         util_stacktrace();
-  }
+  r = fs_sendrec(fs_e, &m);
 
   cpf_revoke(grant_id);
 
@@ -649,7 +638,6 @@ PUBLIC int req_newdriver(
 }
 
 
-
 /*===========================================================================*
  *                             req_putnode                                  *
  *===========================================================================*/
@@ -1150,13 +1138,6 @@ PRIVATE int fs_sendrec_f(char *file, int line, endpoint_t fs_e, message *reqm)
        if (reqm->m_type <= 0)
                break; /* Reply */
 
-       if (reqm->m_type == -EENTERMOUNT || reqm->m_type == -ELEAVEMOUNT ||
-           reqm->m_type == -ESYMLINK) {
-
-               reqm->m_type = -reqm->m_type;
-               break; /* Reply */
-       }
-
        /* Request */
        nested_fs_call(reqm);
   }