version 1.41.2.6, 2007/12/15 00:17:32 |
version 1.41.2.7, 2007/12/15 00:51:47 |
Line 910 tmpfs_reg_resize(struct vnode *vp, off_t |
|
Line 910 tmpfs_reg_resize(struct vnode *vp, off_t |
|
int zerolen = MIN(round_page(newsize), node->tn_size) - newsize; |
int zerolen = MIN(round_page(newsize), node->tn_size) - newsize; |
|
|
/* |
/* |
* free "backing store" |
|
*/ |
|
|
|
if (newpages < oldpages) { |
|
struct uvm_object *uobj; |
|
|
|
uobj = node->tn_spec.tn_reg.tn_aobj; |
|
|
|
mutex_enter(&uobj->vmobjlock); |
|
uao_dropswap_range(uobj, newpages, oldpages); |
|
mutex_exit(&uobj->vmobjlock); |
|
} |
|
|
|
/* |
|
* zero out the truncated part of the last page. |
* zero out the truncated part of the last page. |
*/ |
*/ |
|
|
Line 934 tmpfs_reg_resize(struct vnode *vp, off_t |
|
Line 920 tmpfs_reg_resize(struct vnode *vp, off_t |
|
node->tn_size = newsize; |
node->tn_size = newsize; |
uvm_vnp_setsize(vp, newsize); |
uvm_vnp_setsize(vp, newsize); |
|
|
|
/* |
|
* free "backing store" |
|
*/ |
|
|
|
if (newpages < oldpages) { |
|
struct uvm_object *uobj; |
|
|
|
uobj = node->tn_spec.tn_reg.tn_aobj; |
|
|
|
mutex_enter(&uobj->vmobjlock); |
|
uao_dropswap_range(uobj, newpages, oldpages); |
|
mutex_exit(&uobj->vmobjlock); |
|
} |
|
|
error = 0; |
error = 0; |
|
|
if (newsize > oldsize) |
if (newsize > oldsize) |