Whamcloud - gitweb
LU-17422 osc: Clear PageChecked on bounce pages 65/53865/10
authorPatrick Farrell <paf0187@gmail.com>
Wed, 27 Mar 2024 21:44:47 +0000 (17:44 -0400)
committerOleg Drokin <green@whamcloud.com>
Tue, 23 Apr 2024 19:50:44 +0000 (19:50 +0000)
When we're finalizing a bounce page, we must clear
PageChecked.  Otherwise, if it's a page pool page, it will
be reused without the full wipe the kernel gives it, and we
will see PageChecked on pages which are not actually from
encryption and will handle them incorrectly.

Fixes: f3fe144b85 ("LU-15003 sec: use enc pool for bounce pages")
Signed-off-by: Patrick Farrell <patrick.farrell@oracle.com>
Change-Id: I8b319e7ba55dd883d74db79a19bf93b6f125616a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/53865
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
lustre/osc/osc_request.c

index 8ec47e8..e1ebbf5 100644 (file)
@@ -1442,6 +1442,7 @@ static inline void osc_finalize_bounce_page(struct page **pagep)
 {
        struct page *page = *pagep;
 
+       ClearPageChecked(page);
        /* PagePrivate2 was set in osc_encrypt_pagecache_blocks
         * to indicate the cipher page was allocated by ourselves.
         * So we must not free it via llcrypt.