diff options
author | Jeff Layton <jlayton@kernel.org> | 2021-05-04 17:08:30 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-07-20 17:10:48 +0300 |
commit | 04a333cf982ce9c14026edc43239f1fd340bbdfe (patch) | |
tree | ac9123ed9754caf0c4feae154fd49c7442184ec7 /fs | |
parent | ab720715b8a8902f03a38c9f760b804d60d74ca8 (diff) | |
download | linux-04a333cf982ce9c14026edc43239f1fd340bbdfe.tar.xz |
ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
[ 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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/addr.c | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index a02e845eb0fb..34ab7b892b70 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -76,10 +76,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", @@ -125,11 +121,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); } /* |