Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp579284pxk; Thu, 17 Sep 2020 10:25:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxjOkGMBTI51Aqa6/qgRHW9NgetcUvcM/y9nnfUHGHz5iJlANJ8RlMkfTMO+ma7/EeDV3EQ X-Received: by 2002:a17:906:1484:: with SMTP id x4mr31040614ejc.81.1600363526834; Thu, 17 Sep 2020 10:25:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600363526; cv=none; d=google.com; s=arc-20160816; b=bJchZj989L+gtFMDDjM3bR5+8JGtzuF8/nInAx5S/dqLuQIZzm3yw0HkiVspE5M6yW sSPdMqmU10SS2LQQFPfQePO83uy5Dvy9Oz0sKTYVzvkT6Wx7T3YITEFoWlCOwee4r2Rh 8cXApZ9donvRTlQy0kDZeGVj/45caZqVNfmHB6B/RwUREaMCcKLc0Qy4KfctMNEcZEZ1 w9HmLeX3BUC4ZPsxQb3bkoRXRvk/8ReqbBrbZ/GQ+2/+FBb8DbZnfOCXpPinO9j2/qsL EBGdo+o3YXWQbJlcbPsSlt9HqCVnP0NeISKIZQwuSrK/8ao4+jeq8ZW4Tnzq2RrZVNKt sIPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=IWdgcM61fs+kVN3dvCku1mkt6uj7ZA5jubNT+EiUHzI=; b=pMT3BwFLXj68y0wtihNjX7uO7ZonFKmZVPVxGm7PEK0sdY+7Y3uzeyfvSUsJbBArA+ Df2ncPPY2t1bGVvw5pBUAu+l9NqS1STvvhahA5rPJKQzniVmvCKI+0tRVm7RYHU8vcse ceKz4+/OidRcwCjtteko9o9bpCbE/NNPcm2GpM3x4sq0qiim4ddtwDKqWnhS6RGuEgx9 bvBMAFRWJQsmPJ9ydf8Ari8HLBolRVeUb9TxhVdE6/0QWlRO1jFBHlKTuKTq6O+aW823 YFwDFZCSUHZtE2oizILrhJALm12rSnYRiW9o+FuPRq83679+BsrDYSJN7xO4qD5fm9Ur 9dfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=PkTOoVHQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r21si231531edm.221.2020.09.17.10.25.03; Thu, 17 Sep 2020 10:25:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=PkTOoVHQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726504AbgIQRX5 (ORCPT + 99 others); Thu, 17 Sep 2020 13:23:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58004 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726401AbgIQRXn (ORCPT ); Thu, 17 Sep 2020 13:23:43 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52F53C06174A; Thu, 17 Sep 2020 10:23:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=IWdgcM61fs+kVN3dvCku1mkt6uj7ZA5jubNT+EiUHzI=; b=PkTOoVHQ0Jo76SGurVUyndfTWr oVlryAN694M2ij3f+WvWLoHAp1MCHnxFGtmXwjo3Fqu9bZ5wRhknnuO9pv5cQELskjyVwh1FoFq5Y cpv6+VhjR0LCt+gwmvoal7FfwbLgG1fgk6Kr3UNCIvbxZptb28oOcGjz8+vTfqvJRrjqjBISFy6+d ZGk9yxuCcU8aP4XxOmG3i33Cc1MrPXwHzxjgqj7er9FsWcvLbFo4Ve+o+Xy4W6IBtHaf3jtEmVNRf X1E6YzC8zihmv5lkPHfuPrxtnuVi5+39b8UzchBhAPATAH1udG3XKKxJvLVUTr8APnyRzaEbxtzjC nzR1mX0g==; Received: from 089144214092.atnat0023.highway.a1.net ([89.144.214.92] helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1kIxd8-00026l-LT; Thu, 17 Sep 2020 17:23:34 +0000 From: Christoph Hellwig To: Jens Axboe Cc: Josef Bacik , Minchan Kim , Stefan Haberland , Jan Hoeppner , Joseph Qi , "Rafael J. Wysocki" , Pavel Machek , Len Brown , Andrew Morton , linux-kernel@vger.kernel.org, nbd@other.debian.org, linux-ide@vger.kernel.org, linux-s390@vger.kernel.org, linux-fsdevel@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-pm@vger.kernel.org, linux-mm@kvack.org, linux-block@vger.kernel.org Subject: [PATCH 11/14] PM: rewrite is_hibernate_resume_dev to not require an inode Date: Thu, 17 Sep 2020 18:57:17 +0200 Message-Id: <20200917165720.3285256-12-hch@lst.de> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200917165720.3285256-1-hch@lst.de> References: <20200917165720.3285256-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Just check the dev_t to help simplifying the code. Signed-off-by: Christoph Hellwig --- fs/block_dev.c | 2 +- include/linux/suspend.h | 4 ++-- kernel/power/user.c | 12 ++++++------ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/fs/block_dev.c b/fs/block_dev.c index 1a9325f4315769..2898d69be6b3e4 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1885,7 +1885,7 @@ ssize_t blkdev_write_iter(struct kiocb *iocb, struct iov_iter *from) if (bdev_read_only(I_BDEV(bd_inode))) return -EPERM; - if (IS_SWAPFILE(bd_inode) && !is_hibernate_resume_dev(bd_inode)) + if (IS_SWAPFILE(bd_inode) && !is_hibernate_resume_dev(bd_inode->i_rdev)) return -ETXTBSY; if (!iov_iter_count(from)) diff --git a/include/linux/suspend.h b/include/linux/suspend.h index cb9afad82a90c8..8af13ba60c7e45 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -473,9 +473,9 @@ static inline int hibernate_quiet_exec(int (*func)(void *data), void *data) { #endif /* CONFIG_HIBERNATION */ #ifdef CONFIG_HIBERNATION_SNAPSHOT_DEV -int is_hibernate_resume_dev(const struct inode *); +int is_hibernate_resume_dev(dev_t dev); #else -static inline int is_hibernate_resume_dev(const struct inode *i) { return 0; } +static inline int is_hibernate_resume_dev(dev_t dev) { return 0; } #endif /* Hibernation and suspend events */ diff --git a/kernel/power/user.c b/kernel/power/user.c index d5eedc2baa2a10..b5815685b944fe 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -35,12 +35,12 @@ static struct snapshot_data { bool ready; bool platform_support; bool free_bitmaps; - struct inode *bd_inode; + dev_t dev; } snapshot_state; -int is_hibernate_resume_dev(const struct inode *bd_inode) +int is_hibernate_resume_dev(dev_t dev) { - return hibernation_available() && snapshot_state.bd_inode == bd_inode; + return hibernation_available() && snapshot_state.dev == dev; } static int snapshot_open(struct inode *inode, struct file *filp) @@ -101,7 +101,7 @@ static int snapshot_open(struct inode *inode, struct file *filp) data->frozen = false; data->ready = false; data->platform_support = false; - data->bd_inode = NULL; + data->dev = 0; Unlock: unlock_system_sleep(); @@ -117,7 +117,7 @@ static int snapshot_release(struct inode *inode, struct file *filp) swsusp_free(); data = filp->private_data; - data->bd_inode = NULL; + data->dev = 0; free_all_swap_pages(data->swap); if (data->frozen) { pm_restore_gfp_mask(); @@ -245,7 +245,7 @@ static int snapshot_set_swap_area(struct snapshot_data *data, if (data->swap < 0) return -ENODEV; - data->bd_inode = bdev->bd_inode; + data->dev = bdev->bd_dev; bdput(bdev); return 0; } -- 2.28.0