Date: Sun, 9 Aug 2009 12:30:20 GMT From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 167130 for review Message-ID: <200908091230.n79CUKf5099061@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=167130 Change 167130 by trasz@trasz_anger on 2009/08/09 12:29:35 HRL allocation routines return fake error code; caller is expected to return proper one. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#7 edit .. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/msdosfs/msdosfs_vnops.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clbio.c#9 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/nwfs/nwfs_io.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/smbfs/smbfs_io.c#5 edit .. //depot/projects/soc2009/trasz_limits/sys/fs/tmpfs/tmpfs_vnops.c#6 edit .. //depot/projects/soc2009/trasz_limits/sys/gnu/fs/ext2fs/ext2_readwrite.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#3 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#10 edit .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#9 edit .. //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_bio.c#10 edit .. //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vnops.c#4 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#3 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#7 (text+ko) ==== @@ -365,8 +365,10 @@ } error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_DATASIZE, a_out->a_data + bss_size); - if (error) + if (error) { + error = ENOMEM; goto cleanup; + } /* * Prevent more writers. @@ -453,8 +455,10 @@ /* allocate some 'anon' space */ error = vm_map_find(&td->td_proc->p_vmspace->vm_map, NULL, 0, &vmaddr, bss_size, FALSE, VM_PROT_ALL, VM_PROT_ALL, 0); - if (error) + if (error) { + error = ENOMEM; goto cleanup; + } } cleanup: ==== //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#3 (text+ko) ==== @@ -112,7 +112,7 @@ error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, a_out->a_data + bss_size); if (error) - return (error); + return (ENOMEM); VOP_UNLOCK(imgp->vp, 0); ==== //depot/projects/soc2009/trasz_limits/sys/fs/msdosfs/msdosfs_vnops.c#4 (text+ko) ==== @@ -704,7 +704,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } /* ==== //depot/projects/soc2009/trasz_limits/sys/fs/nfsclient/nfs_clbio.c#9 (text+ko) ==== @@ -1058,7 +1058,7 @@ error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } biosize = vp->v_mount->mnt_stat.f_iosize; ==== //depot/projects/soc2009/trasz_limits/sys/fs/nwfs/nwfs_io.c#4 (text+ko) ==== @@ -240,7 +240,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uiop->uio_offset + uiop->uio_resid); if (error) - return (error); + return (EFBIG); } error = ncp_write(NWFSTOCONN(nmp), &np->n_fh, uiop, cred); NCPVNDEBUG("after: ofs=%d,resid=%d\n",(int)uiop->uio_offset, uiop->uio_resid); ==== //depot/projects/soc2009/trasz_limits/sys/fs/smbfs/smbfs_io.c#5 (text+ko) ==== @@ -282,7 +282,7 @@ error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, (uoff_t)uiop->uio_offset + uiop->uio_resid); if (error) - return (error); + return (EFBIG); } smb_makescred(&scred, td, cred); error = smb_write(smp->sm_share, np->n_fid, uiop, &scred); ==== //depot/projects/soc2009/trasz_limits/sys/fs/tmpfs/tmpfs_vnops.c#6 (text+ko) ==== @@ -662,7 +662,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } extended = uio->uio_offset + uio->uio_resid > node->tn_size; ==== //depot/projects/soc2009/trasz_limits/sys/gnu/fs/ext2fs/ext2_readwrite.c#3 (text+ko) ==== @@ -213,7 +213,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } resid = uio->uio_resid; ==== //depot/projects/soc2009/trasz_limits/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c#4 (text+ko) ==== @@ -603,7 +603,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } #endif ==== //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#3 (text+ko) ==== @@ -110,7 +110,7 @@ error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, a_out->a_data + bss_size); if (error) - return (error); + return (ENOMEM); VOP_UNLOCK(imgp->vp, 0); ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#3 (text+ko) ==== @@ -187,7 +187,7 @@ error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, a_out->a_data + bss_size); if (error) - return (error); + return (ENOMEM); /* * Avoid a possible deadlock if the current address space is destroyed ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#3 (text+ko) ==== @@ -793,11 +793,11 @@ error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_DATASIZE, data_size); if (error) - return (error); + return (ENOMEM); error = hrl_allocated_proc(imgp->proc, HRL_RESOURCE_VMEMORYUSE, total_size); if (error) - return (error); + return (ENOMEM); PROC_LOCK(imgp->proc); vmspace->vm_tsize = text_size >> PAGE_SHIFT; ==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#3 (text+ko) ==== @@ -218,7 +218,7 @@ error = hrl_allocated_proc(gz->ip->proc, HRL_RESOURCE_DATASIZE, gz->a_out.a_data + gz->bss_size); if (error) - return (error); + return (ENOMEM); /* Find out how far we should go */ gz->file_end = gz->file_offset + gz->a_out.a_text + gz->a_out.a_data; ==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#10 (text+ko) ==== @@ -371,7 +371,7 @@ proc0_init(void *dummy __unused) { struct proc *p; - unsigned i; + unsigned i, error; struct thread *td; GIANT_REQUIRED; @@ -517,7 +517,8 @@ * Charge root for one process. */ (void)chgproccnt(p->p_ucred->cr_ruidinfo, 1, 0); - hrl_alloc(HRL_RESOURCE_MAXPROCESSES, 1); + error = hrl_alloc(HRL_RESOURCE_MAXPROCESSES, 1); + KASSERT(error == 0, ("hrl_alloc failed")); } SYSINIT(p0init, SI_SUB_INTRINSIC, SI_ORDER_FIRST, proc0_init, NULL); ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#9 (text+ko) ==== ==== //depot/projects/soc2009/trasz_limits/sys/nfsclient/nfs_bio.c#10 (text+ko) ==== @@ -955,7 +955,7 @@ error = hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } biosize = vp->v_mount->mnt_stat.f_iosize; ==== //depot/projects/soc2009/trasz_limits/sys/ufs/ffs/ffs_vnops.c#4 (text+ko) ==== @@ -709,7 +709,7 @@ error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_FILESIZE, (uoff_t)uio->uio_offset + uio->uio_resid); if (error) - return (error); + return (EFBIG); } resid = uio->uio_resid; ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#3 (text+ko) ==== @@ -87,8 +87,10 @@ if (new > base) { error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_DATASIZE, new - base); - if (error) + if (error) { + error = ENOMEM; goto done; + } if (new > vm_map_max(&vm->vm_map)) { error = ENOMEM; goto done; @@ -105,8 +107,10 @@ if (new > old) { error = hrl_allocated_proc(td->td_proc, HRL_RESOURCE_VMEMORYUSE, vm->vm_map.size + (new - old)); - if (error) + if (error) { + error = ENOMEM; goto done; + } rv = vm_map_insert(&vm->vm_map, NULL, 0, old, new, VM_PROT_RW, VM_PROT_ALL, 0); if (rv != KERN_SUCCESS) {
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908091230.n79CUKf5099061>
