vfs/avfs: req_newdriver should use fs_sendrec
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.
This commit is contained in:
parent
e379e0936e
commit
9221586f37
@ -125,10 +125,7 @@ PUBLIC int fs_sendrec(endpoint_t fs_e, message *reqmp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reqmp->m_type == -EENTERMOUNT || reqmp->m_type == -ELEAVEMOUNT ||
|
if (force_sync != 0 && reqmp->m_type > 0) {
|
||||||
reqmp->m_type == -ESYMLINK) {
|
|
||||||
reqmp->m_type = -reqmp->m_type;
|
|
||||||
} else if (force_sync != 0 && reqmp->m_type > 0) {
|
|
||||||
/* XXX: Keep this as long as we're interested in having support
|
/* XXX: Keep this as long as we're interested in having support
|
||||||
* for synchronous communication. */
|
* for synchronous communication. */
|
||||||
nested_fs_call(reqmp);
|
nested_fs_call(reqmp);
|
||||||
|
@ -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.
|
* and receiving response from FS processes.
|
||||||
* Each function builds a request message according to the request
|
* 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.
|
* back the response.
|
||||||
* The low-level fs_sendrec handles the recovery mechanism from
|
|
||||||
* a dead driver and reissues the request.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
@ -612,11 +610,6 @@ PUBLIC int req_newdriver(
|
|||||||
char *label
|
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;
|
cp_grant_id_t grant_id;
|
||||||
size_t len;
|
size_t len;
|
||||||
message m;
|
message m;
|
||||||
@ -635,11 +628,7 @@ PUBLIC int req_newdriver(
|
|||||||
m.REQ_PATH_LEN = len;
|
m.REQ_PATH_LEN = len;
|
||||||
|
|
||||||
/* Issue request */
|
/* Issue request */
|
||||||
if((r = sendrec(fs_e, &m)) != OK) {
|
r = fs_sendrec(fs_e, &m);
|
||||||
printf("%s:%d VFS req_newdriver: error sending message %d to %d\n",
|
|
||||||
__FILE__, __LINE__, r, fs_e);
|
|
||||||
util_stacktrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
cpf_revoke(grant_id);
|
cpf_revoke(grant_id);
|
||||||
|
|
||||||
@ -647,7 +636,6 @@ PUBLIC int req_newdriver(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* req_putnode *
|
* req_putnode *
|
||||||
*===========================================================================*/
|
*===========================================================================*/
|
||||||
|
@ -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.
|
* and receiving response from FS processes.
|
||||||
* Each function builds a request message according to the request
|
* 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.
|
* back the response.
|
||||||
* The low-level fs_sendrec handles the recovery mechanism from
|
|
||||||
* a dead driver and reissues the request.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "fs.h"
|
#include "fs.h"
|
||||||
@ -614,11 +612,6 @@ PUBLIC int req_newdriver(
|
|||||||
char *label
|
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;
|
cp_grant_id_t grant_id;
|
||||||
size_t len;
|
size_t len;
|
||||||
message m;
|
message m;
|
||||||
@ -637,11 +630,7 @@ PUBLIC int req_newdriver(
|
|||||||
m.REQ_PATH_LEN = len;
|
m.REQ_PATH_LEN = len;
|
||||||
|
|
||||||
/* Issue request */
|
/* Issue request */
|
||||||
if((r = sendrec(fs_e, &m)) != OK) {
|
r = fs_sendrec(fs_e, &m);
|
||||||
printf("%s:%d VFS req_newdriver: error sending message %d to %d\n",
|
|
||||||
__FILE__, __LINE__, r, fs_e);
|
|
||||||
util_stacktrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
cpf_revoke(grant_id);
|
cpf_revoke(grant_id);
|
||||||
|
|
||||||
@ -649,7 +638,6 @@ PUBLIC int req_newdriver(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*===========================================================================*
|
/*===========================================================================*
|
||||||
* req_putnode *
|
* 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)
|
if (reqm->m_type <= 0)
|
||||||
break; /* Reply */
|
break; /* Reply */
|
||||||
|
|
||||||
if (reqm->m_type == -EENTERMOUNT || reqm->m_type == -ELEAVEMOUNT ||
|
|
||||||
reqm->m_type == -ESYMLINK) {
|
|
||||||
|
|
||||||
reqm->m_type = -reqm->m_type;
|
|
||||||
break; /* Reply */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Request */
|
/* Request */
|
||||||
nested_fs_call(reqm);
|
nested_fs_call(reqm);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user