Free storage that has been allocated and also clear out the extent chains
that record the sectors.
Signed-off-by: Nigel Cunningham <[email protected]>
kernel/power/suspend_swap.c | 31 +++++++++++++++++++++++++++++++
1 files changed, 31 insertions(+), 0 deletions(-)
diff --git a/kernel/power/suspend_swap.c b/kernel/power/suspend_swap.c
index ae0dfad..ae33a4e 100644
--- a/kernel/power/suspend_swap.c
+++ b/kernel/power/suspend_swap.c
@@ -452,3 +452,34 @@ static void swapwriter_cleanup(int endin
close_bdevs();
}
+static int swapwriter_release_storage(void)
+{
+ int i = 0;
+
+ if (test_action_state(SUSPEND_KEEP_IMAGE) &&
+ test_suspend_state(SUSPEND_NOW_RESUMING))
+ return 0;
+
+ header_pages_allocated = 0;
+
+ if (swapextents.first) {
+ /* Free swap entries */
+ struct extent *extentpointer;
+ unsigned long extentvalue;
+ swp_entry_t entry;
+ suspend_extent_for_each(&swapextents, extentpointer,
+ extentvalue) {
+ entry = extent_val_to_swap_entry(extentvalue);
+ swap_free(entry);
+ }
+
+ suspend_put_extent_chain(&swapextents);
+
+ for (i = 0; i < MAX_SWAPFILES; i++)
+ if (block_chain[i].first)
+ suspend_put_extent_chain(&block_chain[i]);
+ }
+
+ return 0;
+}
+
--
Nigel Cunningham nigel at suspend2 dot net
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]