summaryrefslogtreecommitdiffstats
path: root/sys/nfsclient
diff options
context:
space:
mode:
authorru <ru@FreeBSD.org>2008-03-25 09:39:02 +0000
committerru <ru@FreeBSD.org>2008-03-25 09:39:02 +0000
commit3b1bf8c2e9222b7d27e8b9084e637a84005de7ba (patch)
treecf0376c9359f2d1ca6e4e8e4ad4a4f722dba61a7 /sys/nfsclient
parent0655a583e2ccba8b534e710284a730a0d6af1375 (diff)
downloadFreeBSD-src-3b1bf8c2e9222b7d27e8b9084e637a84005de7ba.zip
FreeBSD-src-3b1bf8c2e9222b7d27e8b9084e637a84005de7ba.tar.gz
Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT.
Removed dead code that assumed that M_TRYWAIT can return NULL; it's not true since the advent of MBUMA. Reviewed by: arch There are ongoing disputes as to whether we want to switch to directly using UMA flags M_WAITOK/M_NOWAIT for mbuf(9) allocation.
Diffstat (limited to 'sys/nfsclient')
-rw-r--r--sys/nfsclient/krpc_subr.c23
-rw-r--r--sys/nfsclient/nfs_socket.c4
-rw-r--r--sys/nfsclient/nfs_subs.c20
3 files changed, 18 insertions, 29 deletions
diff --git a/sys/nfsclient/krpc_subr.c b/sys/nfsclient/krpc_subr.c
index b5a1d15..d7f6059 100644
--- a/sys/nfsclient/krpc_subr.c
+++ b/sys/nfsclient/krpc_subr.c
@@ -151,9 +151,7 @@ krpc_portmap(struct sockaddr_in *sin, u_int prog, u_int vers, u_int16_t *portp,
return 0;
}
- m = m_get(M_TRYWAIT, MT_DATA);
- if (m == NULL)
- return ENOBUFS;
+ m = m_get(M_WAIT, MT_DATA);
sdata = mtod(m, struct sdata *);
m->m_len = sizeof(*sdata);
@@ -274,7 +272,7 @@ krpc_call(struct sockaddr_in *sa, u_int prog, u_int vers, u_int func,
/*
* Prepend RPC message header.
*/
- mhead = m_gethdr(M_TRYWAIT, MT_DATA);
+ mhead = m_gethdr(M_WAIT, MT_DATA);
mhead->m_next = *data;
call = mtod(mhead, struct krpc_call *);
mhead->m_len = sizeof(*call);
@@ -308,11 +306,7 @@ krpc_call(struct sockaddr_in *sa, u_int prog, u_int vers, u_int func,
timo = 0;
for (;;) {
/* Send RPC request (or re-send). */
- m = m_copym(mhead, 0, M_COPYALL, M_TRYWAIT);
- if (m == NULL) {
- error = ENOBUFS;
- goto out;
- }
+ m = m_copym(mhead, 0, M_COPYALL, M_WAIT);
error = sosend(so, (struct sockaddr *)sa, NULL, m,
NULL, 0, td);
if (error) {
@@ -462,14 +456,9 @@ xdr_string_encode(char *str, int len)
if (mlen > MCLBYTES) /* If too big, we just can't do it. */
return (NULL);
- m = m_get(M_TRYWAIT, MT_DATA);
- if (mlen > MLEN) {
- MCLGET(m, M_TRYWAIT);
- if ((m->m_flags & M_EXT) == 0) {
- (void) m_free(m); /* There can be only one. */
- return (NULL);
- }
- }
+ m = m_get(M_WAIT, MT_DATA);
+ if (mlen > MLEN)
+ MCLGET(m, M_WAIT);
xs = mtod(m, struct xdr_string *);
m->m_len = mlen;
xs->len = txdr_unsigned(len);
diff --git a/sys/nfsclient/nfs_socket.c b/sys/nfsclient/nfs_socket.c
index 3975577..140edb4 100644
--- a/sys/nfsclient/nfs_socket.c
+++ b/sys/nfsclient/nfs_socket.c
@@ -1169,7 +1169,7 @@ nfs_request(struct vnode *vp, struct mbuf *mrest, int procnum,
* For stream protocols, insert a Sun RPC Record Mark.
*/
if (nmp->nm_sotype == SOCK_STREAM) {
- M_PREPEND(m, NFSX_UNSIGNED, M_TRYWAIT);
+ M_PREPEND(m, NFSX_UNSIGNED, M_WAIT);
*mtod(m, u_int32_t *) = htonl(0x80000000 |
(m->m_pkthdr.len - NFSX_UNSIGNED));
}
@@ -1213,7 +1213,7 @@ tryagain:
if (nmp->nm_sotype == SOCK_STREAM)
nmp->nm_nfstcpstate.sock_send_inprog++;
mtx_unlock(&nmp->nm_mtx);
- m2 = m_copym(m, 0, M_COPYALL, M_TRYWAIT);
+ m2 = m_copym(m, 0, M_COPYALL, M_WAIT);
error = nfs_send(nmp->nm_so, nmp->nm_nam, m2, rep);
mtx_lock(&nmp->nm_mtx);
mtx_lock(&rep->r_mtx);
diff --git a/sys/nfsclient/nfs_subs.c b/sys/nfsclient/nfs_subs.c
index 6b5c63f..9f57ab3 100644
--- a/sys/nfsclient/nfs_subs.c
+++ b/sys/nfsclient/nfs_subs.c
@@ -165,9 +165,9 @@ nfsm_reqhead(struct vnode *vp, u_long procid, int hsiz)
{
struct mbuf *mb;
- MGET(mb, M_TRYWAIT, MT_DATA);
+ MGET(mb, M_WAIT, MT_DATA);
if (hsiz >= MINCLSIZE)
- MCLGET(mb, M_TRYWAIT);
+ MCLGET(mb, M_WAIT);
mb->m_len = 0;
return (mb);
}
@@ -191,9 +191,9 @@ nfsm_rpchead(struct ucred *cr, int nmflag, int procid, int auth_type,
int grpsiz, authsiz;
authsiz = nfsm_rndup(auth_len);
- MGETHDR(mb, M_TRYWAIT, MT_DATA);
+ MGETHDR(mb, M_WAIT, MT_DATA);
if ((authsiz + 10 * NFSX_UNSIGNED) >= MINCLSIZE) {
- MCLGET(mb, M_TRYWAIT);
+ MCLGET(mb, M_WAIT);
} else if ((authsiz + 10 * NFSX_UNSIGNED) < MHLEN) {
MH_ALIGN(mb, authsiz + 10 * NFSX_UNSIGNED);
} else {
@@ -286,9 +286,9 @@ nfsm_uiotombuf(struct uio *uiop, struct mbuf **mq, int siz, caddr_t *bpos)
while (left > 0) {
mlen = M_TRAILINGSPACE(mp);
if (mlen == 0) {
- MGET(mp, M_TRYWAIT, MT_DATA);
+ MGET(mp, M_WAIT, MT_DATA);
if (clflg)
- MCLGET(mp, M_TRYWAIT);
+ MCLGET(mp, M_WAIT);
mp->m_len = 0;
mp2->m_next = mp;
mp2 = mp;
@@ -319,7 +319,7 @@ nfsm_uiotombuf(struct uio *uiop, struct mbuf **mq, int siz, caddr_t *bpos)
}
if (rem > 0) {
if (rem > M_TRAILINGSPACE(mp)) {
- MGET(mp, M_TRYWAIT, MT_DATA);
+ MGET(mp, M_WAIT, MT_DATA);
mp->m_len = 0;
mp2->m_next = mp;
}
@@ -364,9 +364,9 @@ nfsm_strtmbuf(struct mbuf **mb, char **bpos, const char *cp, long siz)
}
/* Loop around adding mbufs */
while (siz > 0) {
- MGET(m1, M_TRYWAIT, MT_DATA);
+ MGET(m1, M_WAIT, MT_DATA);
if (siz > MLEN)
- MCLGET(m1, M_TRYWAIT);
+ MCLGET(m1, M_WAIT);
m1->m_len = NFSMSIZ(m1);
m2->m_next = m1;
m2 = m1;
@@ -563,7 +563,7 @@ nfs_loadattrcache(struct vnode **vpp, struct mbuf **mdp, caddr_t *dposp,
md = *mdp;
t1 = (mtod(md, caddr_t) + md->m_len) - *dposp;
- cp2 = nfsm_disct(mdp, dposp, NFSX_FATTR(v3), t1, M_TRYWAIT);
+ cp2 = nfsm_disct(mdp, dposp, NFSX_FATTR(v3), t1, M_WAIT);
if (cp2 == NULL)
return EBADRPC;
fp = (struct nfs_fattr *)cp2;
OpenPOWER on IntegriCloud