diff --git a/kernel/lib_mapfree.c b/kernel/lib_mapfree.c index bdc3eaea..a77ad530 100644 --- a/kernel/lib_mapfree.c +++ b/kernel/lib_mapfree.c @@ -48,7 +48,6 @@ DECLARE_RWSEM(mapfree_mutex); static LIST_HEAD(mapfree_list); -static void mapfree_pages(struct mapfree_info *mf, int grace_keep) { struct address_space *mapping; diff --git a/kernel/lib_mapfree.h b/kernel/lib_mapfree.h index 4eb7ffa9..8489b998 100644 --- a/kernel/lib_mapfree.h +++ b/kernel/lib_mapfree.h @@ -72,6 +72,8 @@ void mapfree_put(struct mapfree_info *mf); void mapfree_set(struct mapfree_info *mf, loff_t min, loff_t max); +void mapfree_pages(struct mapfree_info *mf, int grace_keep); + ////////////////// dirty IOs on the fly ////////////////// void mf_insert_dirty(struct mapfree_info *mf, struct dirty_info *di); diff --git a/kernel/mars_bio.c b/kernel/mars_bio.c index 6f7f17ac..307b8cf3 100644 --- a/kernel/mars_bio.c +++ b/kernel/mars_bio.c @@ -743,7 +743,7 @@ static int bio_switch(struct bio_brick *brick) MARS_ERR("cannot open file '%s'\n", path); goto done; } - + mapfree_pages(brick->mf, -1); if (unlikely(!(mapping = brick->mf->mf_filp->f_mapping) || !(inode = mapping->host))) { MARS_ERR("internal problem with '%s'\n", path);