lkml.org 
[lkml]   [2021]   [Oct]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 087/151] afs: Fix afs_launder_page() to set correct start file position
    Date
    From: David Howells <dhowells@redhat.com>

    [ Upstream commit 5c0522484eb54b90f2e46a5db8d7a4ff3ff86e5d ]

    Fix afs_launder_page() to set the starting position of the StoreData RPC at
    the offset into the page at which the modified data starts instead of at
    the beginning of the page (the iov_iter is correctly offset).

    The offset got lost during the conversion to passing an iov_iter into
    afs_store_data().

    Changes:
    ver #2:
    - Use page_offset() rather than manually calculating it[1].

    Fixes: bd80d8a80e12 ("afs: Use ITER_XARRAY for writing")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Jeffrey Altman <jaltman@auristor.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    Link: https://lore.kernel.org/r/YST/0e92OdSH0zjg@casper.infradead.org/ [1]
    Link: https://lore.kernel.org/r/162880783179.3421678.7795105718190440134.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/162937512409.1449272.18441473411207824084.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/162981148752.1901565.3663780601682206026.stgit@warthog.procyon.org.uk/ # v1
    Link: https://lore.kernel.org/r/163005741670.2472992.2073548908229887941.stgit@warthog.procyon.org.uk/ # v2
    Link: https://lore.kernel.org/r/163221839087.3143591.14278359695763025231.stgit@warthog.procyon.org.uk/ # v2
    Link: https://lore.kernel.org/r/163292980654.4004896.7134735179887998551.stgit@warthog.procyon.org.uk/ # v2
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    fs/afs/write.c | 3 +--
    1 file changed, 1 insertion(+), 2 deletions(-)

    diff --git a/fs/afs/write.c b/fs/afs/write.c
    index 2dfe3b3a53d6..f24370f5c774 100644
    --- a/fs/afs/write.c
    +++ b/fs/afs/write.c
    @@ -974,8 +974,7 @@ int afs_launder_page(struct page *page)
    iov_iter_bvec(&iter, WRITE, bv, 1, bv[0].bv_len);

    trace_afs_page_dirty(vnode, tracepoint_string("launder"), page);
    - ret = afs_store_data(vnode, &iter, (loff_t)page->index * PAGE_SIZE,
    - true);
    + ret = afs_store_data(vnode, &iter, page_offset(page) + f, true);
    }

    trace_afs_page_dirty(vnode, tracepoint_string("laundered"), page);
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-10-11 16:08    [W:4.403 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site