In gfs2_before_commit(), use list_entry() instead of list_prepare_entry() for letting the iterator variables point at the list head.
Signed-off-by: Andreas Gruenbacher <agrue...@redhat.com> --- fs/gfs2/lops.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index 6ba51cbb94cf..9816d9330456 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c @@ -653,7 +653,7 @@ static void gfs2_before_commit(struct gfs2_sbd *sdp, unsigned int limit, bool is_databuf) { struct gfs2_log_descriptor *ld; - struct gfs2_bufdata *bd1 = NULL, *bd2; + struct gfs2_bufdata *bd1, *bd2; struct page *page; unsigned int num; unsigned n; @@ -661,7 +661,8 @@ static void gfs2_before_commit(struct gfs2_sbd *sdp, unsigned int limit, gfs2_log_lock(sdp); list_sort(NULL, blist, blocknr_cmp); - bd1 = bd2 = list_prepare_entry(bd1, blist, bd_list); + /* bd1 and bd2 initially point at the list head */ + bd1 = bd2 = list_entry(blist, struct gfs2_bufdata, bd_list); while(total) { num = total; if (total > limit) -- 2.35.1