aboutsummaryrefslogtreecommitdiffstats
path: root/mm/swapfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/swapfile.c')
-rw-r--r--mm/swapfile.c10
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;