Whamcloud - gitweb
EX-7601 osd: osd_bufs_put does not always handle all pages
authorPatrick Farrell <pfarrell@whamcloud.com>
Wed, 18 Oct 2023 17:40:51 +0000 (13:40 -0400)
committerAndreas Dilger <adilger@whamcloud.com>
Mon, 27 Nov 2023 18:35:54 +0000 (18:35 +0000)
osd_bufs_put asserts that the dio pages used after are
always zero, but there's no reason for this to be true and
compression specifically violates this by using 1 page at
a time.

Without this patch, we hit this assert and crash when
nonrotational = 1.

Signed-off-by: Patrick Farrell <pfarrell@whamcloud.com>
Change-Id: If6bdb11f254c260e2da4cabe11a82693a468e6fb
Reviewed-on: https://review.whamcloud.com/c/ex/lustre-release/+/52750
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Alex Zhuravlev <bzzz@whamcloud.com>
lustre/osd-ldiskfs/osd_io.c

index d967f9e..f2bbaa4 100644 (file)
@@ -819,8 +819,6 @@ static int osd_bufs_put(const struct lu_env *env, struct dt_object *dt,
                lnb[i].lnb_page = NULL;
        }
 
-       LASSERTF(oti->oti_dio_pages_used == 0, "%d\n", oti->oti_dio_pages_used);
-
        /* Release any partial pagevec */
        pagevec_release(&pvec);