]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
authorJeff Layton <jlayton@kernel.org>
Tue, 4 May 2021 14:08:30 +0000 (10:08 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 20 Jul 2021 14:16:11 +0000 (16:16 +0200)
[ Upstream commit 22d41cdcd3cfd467a4af074165357fcbea1c37f5 ]

The checks for page->mapping are odd, as set_page_dirty is an
address_space operation, and I don't see where it would be called on a
non-pagecache page.

The warning about the page lock also seems bogus.  The comment over
set_page_dirty() says that it can be called without the page lock in
some rare cases. I don't think we want to warn if that's the case.

Reported-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/ceph/addr.c

index e59b2f53a81f6592661a82e0a0cce7d3f0f6d264..de10899da837c5d5231eecd4c34a7c338176b3bf 100644 (file)
@@ -75,10 +75,6 @@ static int ceph_set_page_dirty(struct page *page)
        struct inode *inode;
        struct ceph_inode_info *ci;
        struct ceph_snap_context *snapc;
-       int ret;
-
-       if (unlikely(!mapping))
-               return !TestSetPageDirty(page);
 
        if (PageDirty(page)) {
                dout("%p set_page_dirty %p idx %lu -- already dirty\n",
@@ -124,11 +120,7 @@ static int ceph_set_page_dirty(struct page *page)
        page->private = (unsigned long)snapc;
        SetPagePrivate(page);
 
-       ret = __set_page_dirty_nobuffers(page);
-       WARN_ON(!PageLocked(page));
-       WARN_ON(!page->mapping);
-
-       return ret;
+       return __set_page_dirty_nobuffers(page);
 }
 
 /*