diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-04-03 21:21:26 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2003-04-03 21:21:26 +0000 |
commit | ac8f25b4e562c7b694be38454fa7cf8521fd1301 (patch) | |
tree | 6985c25eef9dcedfd563f18c21c84b71ac5d97de /xen/drivers/block | |
parent | 91e1345d1c287e4798ecc2fc8ed20b0dd70e28c6 (diff) | |
download | xen-ac8f25b4e562c7b694be38454fa7cf8521fd1301.tar.gz xen-ac8f25b4e562c7b694be38454fa7cf8521fd1301.tar.bz2 xen-ac8f25b4e562c7b694be38454fa7cf8521fd1301.zip |
bitkeeper revision 1.160.1.2 (3e8ca5d6NuIwQ-85rqA_rDQ3WcxL2A)
mm.h, xen_block.c, memory.c:
Changed the page-typing fix around; it at least _looks_ a bit more generic now :-)
Diffstat (limited to 'xen/drivers/block')
-rw-r--r-- | xen/drivers/block/xen_block.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/xen/drivers/block/xen_block.c b/xen/drivers/block/xen_block.c index 8901ee59fb..441ee09028 100644 --- a/xen/drivers/block/xen_block.c +++ b/xen/drivers/block/xen_block.c @@ -306,9 +306,9 @@ static void __lock_buffer(unsigned long buffer, { if ( page->type_count == 0 ) { - page->flags &= ~PG_type_mask; + page->flags &= ~(PG_type_mask | PG_need_flush); /* NB. This ref alone won't cause a TLB flush. */ - page->flags |= PGT_writeable_page | PG_noflush; + page->flags |= PGT_writeable_page; } get_page_type(page); } @@ -332,11 +332,11 @@ static void unlock_buffer(struct task_struct *p, page = frame_table + pfn; if ( writeable_buffer && (put_page_type(page) == 0) && - !(page->flags & PG_noflush) ) + (page->flags & PG_need_flush) ) { __flush_tlb(); + page->flags &= ~PG_need_flush; } - page->flags &= ~PG_noflush; put_page_tot(page); } spin_unlock_irqrestore(&p->page_lock, flags); |