uipc_syscalls.c (69781) | uipc_syscalls.c (70254) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1989, 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * sendfile(2) and related extensions: 6 * Copyright (c) 1998, David Greenman. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)uipc_syscalls.c 8.4 (Berkeley) 2/21/94 | 1/* 2 * Copyright (c) 1982, 1986, 1989, 1990, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * sendfile(2) and related extensions: 6 * Copyright (c) 1998, David Greenman. All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 20 unchanged lines hidden (view full) --- 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * @(#)uipc_syscalls.c 8.4 (Berkeley) 2/21/94 |
37 * $FreeBSD: head/sys/kern/uipc_syscalls.c 69781 2000-12-08 21:51:06Z dwmalone $ | 37 * $FreeBSD: head/sys/kern/uipc_syscalls.c 70254 2000-12-21 21:44:31Z bmilekic $ |
38 */ 39 40#include "opt_compat.h" 41#include "opt_ktrace.h" 42 43#include <sys/param.h> 44#include <sys/systm.h> 45#include <sys/kernel.h> --- 497 unchanged lines hidden (view full) --- 543 error = sockargs(&control, mp->msg_control, 544 mp->msg_controllen, MT_CONTROL); 545 if (error) 546 goto bad; 547#ifdef COMPAT_OLDSOCK 548 if (mp->msg_flags == MSG_COMPAT) { 549 register struct cmsghdr *cm; 550 | 38 */ 39 40#include "opt_compat.h" 41#include "opt_ktrace.h" 42 43#include <sys/param.h> 44#include <sys/systm.h> 45#include <sys/kernel.h> --- 497 unchanged lines hidden (view full) --- 543 error = sockargs(&control, mp->msg_control, 544 mp->msg_controllen, MT_CONTROL); 545 if (error) 546 goto bad; 547#ifdef COMPAT_OLDSOCK 548 if (mp->msg_flags == MSG_COMPAT) { 549 register struct cmsghdr *cm; 550 |
551 M_PREPEND(control, sizeof(*cm), M_WAIT); | 551 M_PREPEND(control, sizeof(*cm), M_TRYWAIT); |
552 if (control == 0) { 553 error = ENOBUFS; 554 goto bad; 555 } else { 556 cm = mtod(control, struct cmsghdr *); 557 cm->cmsg_len = control->m_len; 558 cm->cmsg_level = SOL_SOCKET; 559 cm->cmsg_type = SCM_RIGHTS; --- 766 unchanged lines hidden (view full) --- 1326 if ((u_int)buflen > MLEN) { 1327#ifdef COMPAT_OLDSOCK 1328 if (type == MT_SONAME && (u_int)buflen <= 112) 1329 buflen = MLEN; /* unix domain compat. hack */ 1330 else 1331#endif 1332 return (EINVAL); 1333 } | 552 if (control == 0) { 553 error = ENOBUFS; 554 goto bad; 555 } else { 556 cm = mtod(control, struct cmsghdr *); 557 cm->cmsg_len = control->m_len; 558 cm->cmsg_level = SOL_SOCKET; 559 cm->cmsg_type = SCM_RIGHTS; --- 766 unchanged lines hidden (view full) --- 1326 if ((u_int)buflen > MLEN) { 1327#ifdef COMPAT_OLDSOCK 1328 if (type == MT_SONAME && (u_int)buflen <= 112) 1329 buflen = MLEN; /* unix domain compat. hack */ 1330 else 1331#endif 1332 return (EINVAL); 1333 } |
1334 m = m_get(M_WAIT, type); | 1334 m = m_get(M_TRYWAIT, type); |
1335 if (m == NULL) 1336 return (ENOBUFS); 1337 m->m_len = buflen; 1338 error = copyin(buf, mtod(m, caddr_t), (u_int)buflen); 1339 if (error) 1340 (void) m_free(m); 1341 else { 1342 *mp = m; --- 354 unchanged lines hidden (view full) --- 1697 */ 1698 1699 sf = sf_buf_alloc(); 1700 sf->m = pg; 1701 pmap_qenter(sf->kva, &pg, 1); 1702 /* 1703 * Get an mbuf header and set it up as having external storage. 1704 */ | 1335 if (m == NULL) 1336 return (ENOBUFS); 1337 m->m_len = buflen; 1338 error = copyin(buf, mtod(m, caddr_t), (u_int)buflen); 1339 if (error) 1340 (void) m_free(m); 1341 else { 1342 *mp = m; --- 354 unchanged lines hidden (view full) --- 1697 */ 1698 1699 sf = sf_buf_alloc(); 1700 sf->m = pg; 1701 pmap_qenter(sf->kva, &pg, 1); 1702 /* 1703 * Get an mbuf header and set it up as having external storage. 1704 */ |
1705 MGETHDR(m, M_WAIT, MT_DATA); | 1705 MGETHDR(m, M_TRYWAIT, MT_DATA); |
1706 if (m == NULL) { 1707 error = ENOBUFS; 1708 sf_buf_free((void *)sf->kva, NULL); 1709 goto done; 1710 } 1711 /* 1712 * Setup external storage for mbuf. 1713 */ --- 91 unchanged lines hidden --- | 1706 if (m == NULL) { 1707 error = ENOBUFS; 1708 sf_buf_free((void *)sf->kva, NULL); 1709 goto done; 1710 } 1711 /* 1712 * Setup external storage for mbuf. 1713 */ --- 91 unchanged lines hidden --- |