PERFORCE change 167130 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Sun Aug 9 12:30:22 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=167130
Change 167130 by trasz at 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) {
More information about the p4-projects
mailing list