diff mbox series

[RFC,3/6] block: gendisk: Add a new genhd capability flag

Message ID 1652860121-24092-4-git-send-email-quic_vivekuma@quicinc.com (mailing list archive)
State New, archived
Headers show
Series Bootloader based hibernation | expand

Commit Message

Vivek Kumar May 18, 2022, 7:48 a.m. UTC
Add a new genhd capability flag to serialize offsets
for swap partition. This flag is enabled for the gendisk of
the block device which will be used for saving the snapshot
of the hibernation image, based on a kernel parameter
"noswap_randomize". Serializing offset in swap partition
helps in improving hibernation resume time from bootloader.

Signed-off-by: Vivek Kumar <quic_vivekuma@quicinc.com>
Signed-off-by: Prasanna Kumar <quic_kprasan@quicinc.com>
---
 include/linux/blkdev.h | 1 +
 kernel/power/swap.c    | 3 +++
 2 files changed, 4 insertions(+)

Comments

Christoph Hellwig May 18, 2022, 8:08 a.m. UTC | #1
This has abslutely nothing to do with the block layer, and should not
abuse the gendisk.
diff mbox series

Patch

diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 1b24c1f..be094e7 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -92,6 +92,7 @@  enum {
 	GENHD_FL_REMOVABLE			= 1 << 0,
 	GENHD_FL_HIDDEN				= 1 << 1,
 	GENHD_FL_NO_PART			= 1 << 2,
+	GENHD_FL_NO_RANDOMIZE			= 1 << 3,
 };
 
 enum {
diff --git a/kernel/power/swap.c b/kernel/power/swap.c
index 8d5c811..0a40eda 100644
--- a/kernel/power/swap.c
+++ b/kernel/power/swap.c
@@ -1526,6 +1526,9 @@  int swsusp_check(void)
 					    FMODE_READ | FMODE_EXCL, &holder);
 	if (!IS_ERR(hib_resume_bdev)) {
 		set_blocksize(hib_resume_bdev, PAGE_SIZE);
+		if (noswap_randomize)
+			hib_resume_bdev->bd_disk->flags |=
+					GENHD_FL_NO_RANDOMIZE;
 		clear_page(swsusp_header);
 		error = hib_submit_io(REQ_OP_READ, 0,
 					swsusp_resume_block,