From: David van Moolenbroek Date: Mon, 5 Dec 2011 09:52:46 +0000 (+0100) Subject: vfs/avfs: req_newdriver should use fs_sendrec X-Git-Tag: v3.2.0~200 X-Git-Url: http://zhaoyanbai.com/repos/man.nsec3hash.html?a=commitdiff_plain;h=9221586f3753e499b77e284ac7283d84ceb8c4c7;p=minix.git 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. --- diff --git a/servers/avfs/comm.c b/servers/avfs/comm.c index b11b06e05..85b6d2f49 100644 --- a/servers/avfs/comm.c +++ b/servers/avfs/comm.c @@ -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); diff --git a/servers/avfs/request.c b/servers/avfs/request.c index f95c44ed1..be230da77 100644 --- a/servers/avfs/request.c +++ b/servers/avfs/request.c @@ -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 * *===========================================================================*/ diff --git a/servers/vfs/request.c b/servers/vfs/request.c index 834ae8631..137c338ef 100644 --- a/servers/vfs/request.c +++ b/servers/vfs/request.c @@ -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); }