diff options
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r-- | mm/swapfile.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/swapfile.c b/mm/swapfile.c index 7307fc928d7b..63958d60ecb0 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c | |||
@@ -549,7 +549,6 @@ static unsigned char swap_entry_free(struct swap_info_struct *p, | |||
549 | 549 | ||
550 | /* free if no reference */ | 550 | /* free if no reference */ |
551 | if (!usage) { | 551 | if (!usage) { |
552 | struct gendisk *disk = p->bdev->bd_disk; | ||
553 | if (offset < p->lowest_bit) | 552 | if (offset < p->lowest_bit) |
554 | p->lowest_bit = offset; | 553 | p->lowest_bit = offset; |
555 | if (offset > p->highest_bit) | 554 | if (offset > p->highest_bit) |
@@ -560,9 +559,12 @@ static unsigned char swap_entry_free(struct swap_info_struct *p, | |||
560 | nr_swap_pages++; | 559 | nr_swap_pages++; |
561 | p->inuse_pages--; | 560 | p->inuse_pages--; |
562 | frontswap_invalidate_page(p->type, offset); | 561 | frontswap_invalidate_page(p->type, offset); |
563 | if ((p->flags & SWP_BLKDEV) && | 562 | if (p->flags & SWP_BLKDEV) { |
564 | disk->fops->swap_slot_free_notify) | 563 | struct gendisk *disk = p->bdev->bd_disk; |
565 | disk->fops->swap_slot_free_notify(p->bdev, offset); | 564 | if (disk->fops->swap_slot_free_notify) |
565 | disk->fops->swap_slot_free_notify(p->bdev, | ||
566 | offset); | ||
567 | } | ||
566 | } | 568 | } |
567 | 569 | ||
568 | return usage; | 570 | return usage; |