All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Domenico Andreoli <domenico.andreoli@linux.com>
Cc: "Rafael J. Wysocki" <rafael@kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	linux-fsdevel@vger.kernel.org, mkleinsoft@gmail.com,
	Christoph Hellwig <hch@lst.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Len Brown <len.brown@intel.com>, Pavel Machek <pavel@ucw.cz>
Subject: Re: [PATCH] hibernate: Allow uswsusp to write to swap
Date: Wed, 4 Mar 2020 07:45:26 -0800	[thread overview]
Message-ID: <20200304154526.GH8036@magnolia> (raw)
In-Reply-To: <20200304082327.GA14236@dumbo>

On Wed, Mar 04, 2020 at 09:23:27AM +0100, Domenico Andreoli wrote:
> 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.

You might want to start a separate thread for this... :)

> Quick fix: disable the S_SWAPFILE check if hibernation is configured.
> 
> Fixes: 1638045c3677 ("mm: set S_SWAPFILE on blockdev swap devices")

Also, this should be

Fixes: dc617f29dbe5 ("vfs: don't allow writes to swap files")

since we still want to set S_SWAPFILE on active swap devices.

> Reported-by: Domenico Andreoli <domenico.andreoli@linux.com>
> Reported-by: Marian Klein <mkleinsoft@gmail.com>
> Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com>
> 
> ---
>  fs/block_dev.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Index: b/fs/block_dev.c
> ===================================================================
> --- a/fs/block_dev.c
> +++ b/fs/block_dev.c
> @@ -2001,7 +2001,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 to write to the swap */
> +	if (IS_SWAPFILE(bd_inode) && !IS_ENABLED(CONFIG_HIBERNATION))

...&& hibernation_available() ?  That way we can configure this
dynamically.

Thanks for taking this on, I'll go self-NAK the revert patch I sent
yesterday.

--D

>  		return -ETXTBSY;
>  
>  	if (!iov_iter_count(from))

  reply	other threads:[~2020-03-04 15:45 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-29 17:08 [PATCH] hibernate: unlock swap bdev for writing when uswsusp is active Darrick J. Wong
2020-02-29 18:07 ` Domenico Andreoli
2020-02-29 18:38   ` Darrick J. Wong
2020-02-29 20:02     ` Domenico Andreoli
2020-03-01 21:35       ` Rafael J. Wysocki
2020-03-01 21:35         ` Rafael J. Wysocki
2020-03-02  4:51         ` Marian Klein
2020-03-02  4:51           ` Marian Klein
2020-03-03 19:02         ` Darrick J. Wong
2020-03-03 22:51           ` Domenico Andreoli
2020-03-03 22:51             ` Domenico Andreoli
2020-03-04  1:18             ` Darrick J. Wong
2020-03-04  8:23               ` [PATCH] hibernate: Allow uswsusp to write to swap Domenico Andreoli
2020-03-04 15:45                 ` Darrick J. Wong [this message]
2020-03-04 16:31                   ` Domenico Andreoli
2020-03-04  8:34               ` [PATCH] hibernate: unlock swap bdev for writing when uswsusp is active Domenico Andreoli
2020-04-20 18:52         ` Domenico Andreoli
2020-04-21 15:43           ` Darrick J. Wong
2020-04-21 18:39             ` Domenico Andreoli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200304154526.GH8036@magnolia \
    --to=darrick.wong@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=domenico.andreoli@linux.com \
    --cc=hch@lst.de \
    --cc=len.brown@intel.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mkleinsoft@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=rafael@kernel.org \
    --cc=rjw@rjwysocki.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.