mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-07 09:00:28 +00:00
tmpfs_getattr(): Only take vm_object lock on 32bit machines
Torn reads are only possible for 32bit arches. Requested by: mjg Reviewed by: mjg, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D37725
This commit is contained in:
parent
3249449190
commit
4d903a1a74
|
@ -491,7 +491,6 @@ tmpfs_getattr(struct vop_getattr_args *v)
|
|||
{
|
||||
struct vnode *vp = v->a_vp;
|
||||
struct vattr *vap = v->a_vap;
|
||||
vm_object_t obj;
|
||||
struct tmpfs_node *node;
|
||||
|
||||
node = VP_TO_TMPFS_NODE(vp);
|
||||
|
@ -516,10 +515,15 @@ tmpfs_getattr(struct vop_getattr_args *v)
|
|||
vap->va_rdev = (vp->v_type == VBLK || vp->v_type == VCHR) ?
|
||||
node->tn_rdev : NODEV;
|
||||
if (vp->v_type == VREG) {
|
||||
obj = node->tn_reg.tn_aobj;
|
||||
#ifdef __ILP32__
|
||||
vm_object_t obj = node->tn_reg.tn_aobj;
|
||||
|
||||
VM_OBJECT_RLOCK(obj);
|
||||
#endif
|
||||
vap->va_bytes = ptoa(node->tn_reg.tn_pages);
|
||||
#ifdef __ILP32__
|
||||
VM_OBJECT_RUNLOCK(obj);
|
||||
#endif
|
||||
} else {
|
||||
vap->va_bytes = node->tn_size;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue