Commit 107c161b authored by Nitin Gupta's avatar Nitin Gupta Committed by Greg Kroah-Hartman

Staging: ramzswap: Handler for swap slot free callback

Install handler for swap_slot_free_notify callback which is called
when a swap slot is no longer used. This handler immediately frees
memory allocated corresponding to the given swap slot.
Signed-off-by: default avatarNitin Gupta <>
Acked-by: default avatarLinus Torvalds <>
Acked-by: default avatarNigel Cunningham <>
Acked-by: default avatarPekka Enberg <>
Reviewed-by: default avatarMinchan Kim <>
Signed-off-by: default avatarGreg Kroah-Hartman <>
parent b3a27d05
- Add support for swap notifiers
Please send patches to Greg Kroah-Hartman <> and
Nitin Gupta <>
......@@ -335,14 +335,6 @@ static int ramzswap_write(struct ramzswap *rzs, struct bio *bio)
src = rzs->compress_buffer;
* System swaps to same sector again when the stored page
* is no longer referenced by any process. So, its now safe
* to free the memory that was allocated for this page.
if (rzs->table[index].page || rzs_test_flag(rzs, index, RZS_ZERO))
ramzswap_free_page(rzs, index);
user_mem = kmap_atomic(page, KM_USER0);
......@@ -690,9 +682,21 @@ static int ramzswap_ioctl(struct block_device *bdev, fmode_t mode,
return ret;
void ramzswap_slot_free_notify(struct block_device *bdev, unsigned long index)
struct ramzswap *rzs;
rzs = bdev->bd_disk->private_data;
ramzswap_free_page(rzs, index);
rzs_stat64_inc(rzs, &rzs->stats.notify_free);
static struct block_device_operations ramzswap_devops = {
.ioctl = ramzswap_ioctl,
.owner = THIS_MODULE,
.swap_slot_free_notify = ramzswap_slot_free_notify,
.owner = THIS_MODULE
static int create_device(struct ramzswap *rzs, int device_id)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment