diff options
author | attilio <attilio@FreeBSD.org> | 2008-08-28 15:23:18 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2008-08-28 15:23:18 +0000 |
commit | dbf35e279f37ad4a573bf93923d141cb4a454c7d (patch) | |
tree | 61fe2ab5660fec327061e18eda0ed8c65276f262 /sys/vm/vm_mmap.c | |
parent | fb7f3b6363b61cead7eb5e94ac7f816358fc19ab (diff) | |
download | FreeBSD-src-dbf35e279f37ad4a573bf93923d141cb4a454c7d.zip FreeBSD-src-dbf35e279f37ad4a573bf93923d141cb4a454c7d.tar.gz |
Decontextualize the couplet VOP_GETATTR / VOP_SETATTR as the passed thread
was always curthread and totally unuseful.
Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
Diffstat (limited to 'sys/vm/vm_mmap.c')
-rw-r--r-- | sys/vm/vm_mmap.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index 02192b9..7e6b04f 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -1155,10 +1155,12 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, vm_object_t obj; struct mount *mp; struct cdevsw *dsw; + struct ucred *cred; int error, flags, type; int vfslocked; mp = vp->v_mount; + cred = td->td_ucred; vfslocked = VFS_LOCK_GIANT(mp); if ((error = vget(vp, LK_EXCLUSIVE, td)) != 0) { VFS_UNLOCK_GIANT(vfslocked); @@ -1218,11 +1220,10 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, error = EINVAL; goto done; } - if ((error = VOP_GETATTR(vp, &va, td->td_ucred, td))) { + if ((error = VOP_GETATTR(vp, &va, cred))) goto done; - } #ifdef MAC - error = mac_vnode_check_mmap(td->td_ucred, vp, prot, flags); + error = mac_vnode_check_mmap(cred, vp, prot, flags); if (error != 0) goto done; #endif @@ -1252,7 +1253,7 @@ vm_mmap_vnode(struct thread *td, vm_size_t objsize, } *objp = obj; *flagsp = flags; - vfs_mark_atime(vp, td); + vfs_mark_atime(vp, cred); done: vput(vp); |