diff options
author | Prakash Sangappa <Prakash.Sangappa@Sun.COM> | 2008-12-09 12:19:42 -0800 |
---|---|---|
committer | Prakash Sangappa <Prakash.Sangappa@Sun.COM> | 2008-12-09 12:19:42 -0800 |
commit | c7531c7fa84b7925c938a08326949a4ac6487f86 (patch) | |
tree | 8c90eb1807a7b67a2d9b562dbec53e9abcfa64a0 /usr/src | |
parent | d2d5cf7c5d909b74a88d499283e24750a9a52c5d (diff) | |
download | illumos-joyent-c7531c7fa84b7925c938a08326949a4ac6487f86.tar.gz |
6773561 VM gives pages which have p_fsdata populated erroneously
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/vm/vm_page.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/usr/src/uts/common/vm/vm_page.c b/usr/src/uts/common/vm/vm_page.c index ff77057b8e..f12c6a4f0d 100644 --- a/usr/src/uts/common/vm/vm_page.c +++ b/usr/src/uts/common/vm/vm_page.c @@ -3447,6 +3447,7 @@ page_hashin(page_t *pp, vnode_t *vp, u_offset_t offset, kmutex_t *hold) int rc; ASSERT(MUTEX_NOT_HELD(page_vnode_mutex(vp))); + ASSERT(pp->p_fsdata == 0 || panicstr); TRACE_3(TR_FAC_VM, TR_PAGE_HASHIN, "page_hashin:pp %p vp %p offset %llx", @@ -3515,6 +3516,7 @@ page_do_hashout(page_t *pp) PP_CLRSWAP(pp); pp->p_vnode = NULL; pp->p_offset = (u_offset_t)-1; + pp->p_fsdata = 0; } /* @@ -4571,6 +4573,9 @@ page_relocate_hash(page_t *pp_new, page_t *pp_old) page_do_relocate_hash(pp_new, pp_old); + /* The following comment preserved from page_flip(). */ + pp_new->p_fsdata = pp_old->p_fsdata; + pp_old->p_fsdata = 0; mutex_exit(vphm); mutex_exit(phm); @@ -4584,9 +4589,6 @@ page_relocate_hash(page_t *pp_new, page_t *pp_old) pp_new->p_cowcnt = pp_old->p_cowcnt; pp_old->p_lckcnt = pp_old->p_cowcnt = 0; - /* The following comment preserved from page_flip(). */ - /* XXX - Do we need to protect fsdata? */ - pp_new->p_fsdata = pp_old->p_fsdata; } /* |