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