ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
[ Upstream commit 22d41cdcd3 ]
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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
3c586f8255
commit
59d912fe9b
@@ -78,10 +78,6 @@ static int ceph_set_page_dirty(struct page *page)
|
|||||||
struct inode *inode;
|
struct inode *inode;
|
||||||
struct ceph_inode_info *ci;
|
struct ceph_inode_info *ci;
|
||||||
struct ceph_snap_context *snapc;
|
struct ceph_snap_context *snapc;
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (unlikely(!mapping))
|
|
||||||
return !TestSetPageDirty(page);
|
|
||||||
|
|
||||||
if (PageDirty(page)) {
|
if (PageDirty(page)) {
|
||||||
dout("%p set_page_dirty %p idx %lu -- already dirty\n",
|
dout("%p set_page_dirty %p idx %lu -- already dirty\n",
|
||||||
@@ -127,11 +123,7 @@ static int ceph_set_page_dirty(struct page *page)
|
|||||||
page->private = (unsigned long)snapc;
|
page->private = (unsigned long)snapc;
|
||||||
SetPagePrivate(page);
|
SetPagePrivate(page);
|
||||||
|
|
||||||
ret = __set_page_dirty_nobuffers(page);
|
return __set_page_dirty_nobuffers(page);
|
||||||
WARN_ON(!PageLocked(page));
|
|
||||||
WARN_ON(!page->mapping);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
Reference in New Issue
Block a user