aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers/block
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-04-03 21:21:26 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2003-04-03 21:21:26 +0000
commitac8f25b4e562c7b694be38454fa7cf8521fd1301 (patch)
tree6985c25eef9dcedfd563f18c21c84b71ac5d97de /xen/drivers/block
parent91e1345d1c287e4798ecc2fc8ed20b0dd70e28c6 (diff)
downloadxen-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.c8
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);