xen-blkfront: introduce blkfront_gather_backend_features()
authorBob Liu <bob.liu@oracle.com>
Wed, 22 Jul 2015 06:40:08 +0000 (14:40 +0800)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 24 Jul 2015 13:07:10 +0000 (09:07 -0400)
commitd50babbe300eedf33ea5b00a12c5df3a05bd96c7
treeb1b6fc606c98e515bbe6e4a8852210a83178c0a0
parenta9b54bb95176cd27f952cd9647849022c4c998d6
xen-blkfront: introduce blkfront_gather_backend_features()

There is a bug when migrate from !feature-persistent host to feature-persistent
host, because domU still thinks new host/backend doesn't support persistent.
Dmesg like:
backed has not unmapped grant: 839
backed has not unmapped grant: 773
backed has not unmapped grant: 773
backed has not unmapped grant: 773
backed has not unmapped grant: 839

The fix is to recheck feature-persistent of new backend in blkif_recover().
See: https://lkml.org/lkml/2015/5/25/469

As Roger suggested, we can split the part of blkfront_connect that checks for
optional features, like persistent grants, indirect descriptors and
flush/barrier features to a separate function and call it from both
blkfront_connect and blkif_recover

Acked-by: Roger Pau Monné <roger.pau@citrix.com>
Signed-off-by: Bob Liu <bob.liu@oracle.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
drivers/block/xen-blkfront.c