lkml.org 
[lkml]   [2021]   [Jul]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 171/188] ceph: remove bogus checks and WARN_ONs from ceph_set_page_dirty
    Date
    From: Jeff Layton <jlayton@kernel.org>

    [ 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 | 10 +---------
    1 file changed, 1 insertion(+), 9 deletions(-)

    diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
    index fbf383048409..26de74684c17 100644
    --- a/fs/ceph/addr.c
    +++ b/fs/ceph/addr.c
    @@ -72,10 +72,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",
    @@ -121,11 +117,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);
    }

    /*
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-19 17:09    [W:4.280 / U:0.128 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site