Deleted Added
full compact
kern_procctl.c (239135) kern_procctl.c (241896)
1/*-
2 * Copyright (c) 1994, Sean Eric Fagan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
31
32#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1994, Sean Eric Fagan
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 16 unchanged lines hidden (view full) ---

25 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
26 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
27 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
28 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 * SUCH DAMAGE.
30 */
31
32#include <sys/cdefs.h>
33__FBSDID("$FreeBSD: head/sys/kern/sys_process.c 239135 2012-08-08 00:20:30Z kib $");
33__FBSDID("$FreeBSD: head/sys/kern/sys_process.c 241896 2012-10-22 17:50:54Z kib $");
34
35#include "opt_compat.h"
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/lock.h>
40#include <sys/mutex.h>
41#include <sys/syscallsubr.h>

--- 288 unchanged lines hidden (view full) ---

330 struct vattr vattr;
331 vm_map_t map;
332 vm_map_entry_t entry;
333 vm_object_t obj, tobj, lobj;
334 struct vmspace *vm;
335 struct vnode *vp;
336 char *freepath, *fullpath;
337 u_int pathlen;
34
35#include "opt_compat.h"
36
37#include <sys/param.h>
38#include <sys/systm.h>
39#include <sys/lock.h>
40#include <sys/mutex.h>
41#include <sys/syscallsubr.h>

--- 288 unchanged lines hidden (view full) ---

330 struct vattr vattr;
331 vm_map_t map;
332 vm_map_entry_t entry;
333 vm_object_t obj, tobj, lobj;
334 struct vmspace *vm;
335 struct vnode *vp;
336 char *freepath, *fullpath;
337 u_int pathlen;
338 int error, index, vfslocked;
338 int error, index;
339
340 error = 0;
341 obj = NULL;
342
343 vm = vmspace_acquire_ref(p);
344 map = &vm->vm_map;
345 vm_map_lock_read(map);
346

--- 60 unchanged lines hidden (view full) ---

407 if (lobj != obj)
408 VM_OBJECT_UNLOCK(lobj);
409 VM_OBJECT_UNLOCK(obj);
410
411 if (vp != NULL) {
412 freepath = NULL;
413 fullpath = NULL;
414 vn_fullpath(td, vp, &fullpath, &freepath);
339
340 error = 0;
341 obj = NULL;
342
343 vm = vmspace_acquire_ref(p);
344 map = &vm->vm_map;
345 vm_map_lock_read(map);
346

--- 60 unchanged lines hidden (view full) ---

407 if (lobj != obj)
408 VM_OBJECT_UNLOCK(lobj);
409 VM_OBJECT_UNLOCK(obj);
410
411 if (vp != NULL) {
412 freepath = NULL;
413 fullpath = NULL;
414 vn_fullpath(td, vp, &fullpath, &freepath);
415 vfslocked = VFS_LOCK_GIANT(vp->v_mount);
416 vn_lock(vp, LK_SHARED | LK_RETRY);
417 if (VOP_GETATTR(vp, &vattr, td->td_ucred) == 0) {
418 pve->pve_fileid = vattr.va_fileid;
419 pve->pve_fsid = vattr.va_fsid;
420 }
421 vput(vp);
415 vn_lock(vp, LK_SHARED | LK_RETRY);
416 if (VOP_GETATTR(vp, &vattr, td->td_ucred) == 0) {
417 pve->pve_fileid = vattr.va_fileid;
418 pve->pve_fsid = vattr.va_fsid;
419 }
420 vput(vp);
422 VFS_UNLOCK_GIANT(vfslocked);
423
424 if (fullpath != NULL) {
425 pve->pve_pathlen = strlen(fullpath) + 1;
426 if (pve->pve_pathlen <= pathlen) {
427 error = copyout(fullpath, pve->pve_path,
428 pve->pve_pathlen);
429 } else
430 error = ENAMETOOLONG;

--- 812 unchanged lines hidden ---
421
422 if (fullpath != NULL) {
423 pve->pve_pathlen = strlen(fullpath) + 1;
424 if (pve->pve_pathlen <= pathlen) {
425 error = copyout(fullpath, pve->pve_path,
426 pve->pve_pathlen);
427 } else
428 error = ENAMETOOLONG;

--- 812 unchanged lines hidden ---