linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] hibernate: Allow uswsusp to write to swap
@ 2020-03-04 17:06 Domenico Andreoli
  2020-03-10  8:46 ` [hibernate] 3f423f3a03: xfstests.generic.570.fail kernel test robot
  2020-03-22  7:14 ` [PATCH v2] hibernate: Allow uswsusp to write to swap Rafael J. Wysocki
  0 siblings, 2 replies; 7+ messages in thread
From: Domenico Andreoli @ 2020-03-04 17:06 UTC (permalink / raw)
  To: Darrick J. Wong
  Cc: Rafael J. Wysocki, Linux PM, Linux Memory Management List,
	linux-fsdevel, mkleinsoft, Christoph Hellwig, Andrew Morton,
	Rafael J. Wysocki, Len Brown, Pavel Machek

From: Domenico Andreoli <domenico.andreoli@linux.com>

It turns out that there is one use case for programs being able to
write to swap devices, and that is the userspace hibernation code.

Quick fix: disable the S_SWAPFILE check if hibernation is configured.

Fixes: dc617f29dbe5 ("vfs: don't allow writes to swap files")
Reported-by: Domenico Andreoli <domenico.andreoli@linux.com>
Reported-by: Marian Klein <mkleinsoft@gmail.com>
Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com>

v2:
 - use hibernation_available() instead of IS_ENABLED(CONFIG_HIBERNATE)
 - make Fixes: point to the right commit

---
 fs/block_dev.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Index: b/fs/block_dev.c
===================================================================
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -34,6 +34,7 @@
 #include <linux/task_io_accounting_ops.h>
 #include <linux/falloc.h>
 #include <linux/uaccess.h>
+#include <linux/suspend.h>
 #include "internal.h"
 
 struct bdev_inode {
@@ -2001,7 +2002,8 @@ ssize_t blkdev_write_iter(struct kiocb *
 	if (bdev_read_only(I_BDEV(bd_inode)))
 		return -EPERM;
 
-	if (IS_SWAPFILE(bd_inode))
+	/* uswsusp needs write permission to the swap */
+	if (IS_SWAPFILE(bd_inode) && !hibernation_available())
 		return -ETXTBSY;
 
 	if (!iov_iter_count(from))


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-03-24  2:19 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-04 17:06 [PATCH v2] hibernate: Allow uswsusp to write to swap Domenico Andreoli
2020-03-10  8:46 ` [hibernate] 3f423f3a03: xfstests.generic.570.fail kernel test robot
2020-03-10 16:16   ` Darrick J. Wong
2020-03-22  7:14 ` [PATCH v2] hibernate: Allow uswsusp to write to swap Rafael J. Wysocki
2020-03-22 11:23   ` Domenico Andreoli
2020-03-23 15:21     ` Darrick J. Wong
2020-03-24  2:19       ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).