diff options
author | Chris Lalancette <clalance@redhat.com> | 2010-07-21 12:41:45 -0700 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> | 2011-04-14 18:26:13 -0400 |
commit | cbf462908c8080f47c2a3300072877589dd1275f (patch) | |
tree | 645741aed7bc9d818dbbccc1f2558f9df9a973bf | |
parent | 98e036a356747cfaa225478b1e4875e190257b09 (diff) | |
download | linux-cbf462908c8080f47c2a3300072877589dd1275f.tar.gz linux-cbf462908c8080f47c2a3300072877589dd1275f.tar.bz2 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>
-rw-r--r-- | drivers/xen/blkback/xenbus.c | 7 |
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); |