We should consider info->feature_persistent when adding indriect page to list
info->indirect_pages, else the BUG_ON() in blkif_free() would be triggered.

Signed-off-by: Bob Liu <[email protected]>
---
 drivers/block/xen-blkfront.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index 3b193cf..5dd591d 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -1125,8 +1125,10 @@ static void blkif_completion(struct blk_shadow *s, 
struct blkfront_info *info,
                                 * Add the used indirect page back to the list 
of
                                 * available pages for indirect grefs.
                                 */
-                               indirect_page = 
pfn_to_page(s->indirect_grants[i]->pfn);
-                               list_add(&indirect_page->lru, 
&info->indirect_pages);
+                               if (!info->feature_persistent) {
+                                       indirect_page = 
pfn_to_page(s->indirect_grants[i]->pfn);
+                                       list_add(&indirect_page->lru, 
&info->indirect_pages);
+                               }
                                s->indirect_grants[i]->gref = GRANT_INVALID_REF;
                                list_add_tail(&s->indirect_grants[i]->node, 
&info->grants);
                        }
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to