On Thu, Feb 21, 2013 at 10:22:19AM +0800, Shaohua Li wrote: > Sorry if you receive this one twice, last mail get mail address messed. > > In swapin_readahead(), read_swap_cache_async() can read a bad swap entry, > because we don't check if readahead swap entry is bad. This doesn't break > anything but such swapin page is wasteful and can only be freed at page > reclaim. We avoid read such swap entry. > Acked-by: Rafael Aquini <aquini@xxxxxxxxxx> > And next patch will mark a swap entry bad temporarily for discard. Without this > patch, swap entry count will be messed. > > Thanks Hugh to inspire swapin_readahead could use bad swap entry. > > Signed-off-by: Shaohua Li <shli@xxxxxxxxxxxx> > --- > mm/swapfile.c | 5 +++++ > 1 file changed, 5 insertions(+) > > Index: linux/mm/swapfile.c > =================================================================== > --- linux.orig/mm/swapfile.c 2013-02-18 15:21:09.285317914 +0800 > +++ linux/mm/swapfile.c 2013-02-18 15:21:34.545004083 +0800 > @@ -2374,6 +2374,11 @@ static int __swap_duplicate(swp_entry_t > goto unlock_out; > > count = p->swap_map[offset]; > + if (unlikely(swap_count(count) == SWAP_MAP_BAD)) { > + err = -ENOENT; > + goto unlock_out; > + } > + > has_cache = count & SWAP_HAS_CACHE; > count &= ~SWAP_HAS_CACHE; > err = 0; > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@xxxxxxxxx. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>