summaryrefslogtreecommitdiffstats
path: root/drivers/xen/blkback/xenbus.c
diff options
context:
space:
mode:
authorChris Lalancette2010-07-21 21:41:45 +0200
committerKonrad Rzeszutek Wilk2011-04-15 00:26:13 +0200
commitcbf462908c8080f47c2a3300072877589dd1275f (patch)
tree645741aed7bc9d818dbbccc1f2558f9df9a973bf /drivers/xen/blkback/xenbus.c
parentxen/blkback: add accessor for xenbus backend device (diff)
downloadkernel-qcow2-linux-cbf462908c8080f47c2a3300072877589dd1275f.tar.gz
kernel-qcow2-linux-cbf462908c8080f47c2a3300072877589dd1275f.tar.xz
kernel-qcow2-linux-cbf462908c8080f47c2a3300072877589dd1275f.zip
xen/blkback: Flush blkback data when connecting.
First cut at flushing blkback data when first connecting blkback. This should avoid the pygrub issues we are experiencing in (RedHat bugzilla) 466681. [ 2.6.18-xen.hg commit 63b4d7f56688 ] Signed-off-by: Chris Lalancette <clalance@redhat.com> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Diffstat (limited to 'drivers/xen/blkback/xenbus.c')
-rw-r--r--drivers/xen/blkback/xenbus.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/xen/blkback/xenbus.c b/drivers/xen/blkback/xenbus.c
index c31e5c40b45c..a0534fc6a428 100644
--- a/drivers/xen/blkback/xenbus.c
+++ b/drivers/xen/blkback/xenbus.c
@@ -91,6 +91,13 @@ static void update_blkif_status(blkif_t *blkif)
return;
}
+ err = filemap_write_and_wait(blkif->vbd.bdev->bd_inode->i_mapping);
+ if (err) {
+ xenbus_dev_error(blkif->be->dev, err, "block flush");
+ return;
+ }
+ invalidate_inode_pages2(blkif->vbd.bdev->bd_inode->i_mapping);
+
blkif->xenblkd = kthread_run(blkif_schedule, blkif, name);
if (IS_ERR(blkif->xenblkd)) {
err = PTR_ERR(blkif->xenblkd);