Patchwork [V2] ext4: init pagevec in ext4_da_block_invalidatepages

login
register
mail settings
Submitter Eric Sandeen
Date Nov. 11, 2012, 9:50 p.m.
Message ID <50A01DAD.4080607@redhat.com>
Download mbox | patch
Permalink /patch/198300/
State Accepted
Headers show

Comments

Eric Sandeen - Nov. 11, 2012, 9:50 p.m.
ext4_da_block_invalidatepages is missing a pagevec_init(),
which means that pvec->cold contains random garbage.

This affects whether the page goes to the front or
back of the LRU when ->cold makes it to
free_hot_cold_page()

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Cc: stable@vger.kernel.org
---

(resend w/ stable in S-O-B area rather than fat-fingered
in email cc :/  )


--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lukas Czerner - Nov. 12, 2012, 7:35 a.m.
On Sun, 11 Nov 2012, Eric Sandeen wrote:

> Date: Sun, 11 Nov 2012 15:50:37 -0600
> From: Eric Sandeen <sandeen@redhat.com>
> To: ext4 development <linux-ext4@vger.kernel.org>
> Subject: [PATCH V2] ext4: init pagevec in ext4_da_block_invalidatepages
> 
> ext4_da_block_invalidatepages is missing a pagevec_init(),
> which means that pvec->cold contains random garbage.
> 
> This affects whether the page goes to the front or
> back of the LRU when ->cold makes it to
> free_hot_cold_page()

Looks good.

Reviewed-by: Lukas Czerner <lczerner@redhat.com>

> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Cc: stable@vger.kernel.org
> ---
> 
> (resend w/ stable in S-O-B area rather than fat-fingered
> in email cc :/  )
> 
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index b3c243b..f89c0e5 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -1503,6 +1503,8 @@ static void ext4_da_block_invalidatepages(struct mpage_da_data *mpd)
>  
>  	index = mpd->first_page;
>  	end   = mpd->next_page - 1;
> +
> +	pagevec_init(&pvec, 0);
>  	while (index <= end) {
>  		nr_pages = pagevec_lookup(&pvec, mapping, index, PAGEVEC_SIZE);
>  		if (nr_pages == 0)
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Carlos Maiolino - Nov. 12, 2012, 2:12 p.m.
On Sun, Nov 11, 2012 at 03:50:37PM -0600, Eric Sandeen wrote:
> ext4_da_block_invalidatepages is missing a pagevec_init(),
> which means that pvec->cold contains random garbage.
> 
> This affects whether the page goes to the front or
> back of the LRU when ->cold makes it to
> free_hot_cold_page()
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Cc: stable@vger.kernel.org
> ---
> 
> (resend w/ stable in S-O-B area rather than fat-fingered
> in email cc :/  )
> 
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index b3c243b..f89c0e5 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -1503,6 +1503,8 @@ static void ext4_da_block_invalidatepages(struct mpage_da_data *mpd)
>  
>  	index = mpd->first_page;
>  	end   = mpd->next_page - 1;
> +
> +	pagevec_init(&pvec, 0);
>  	while (index <= end) {
>  		nr_pages = pagevec_lookup(&pvec, mapping, index, PAGEVEC_SIZE);
>  		if (nr_pages == 0)
> 

Looks Good,

Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Theodore Ts'o - Nov. 13, 2012, 5:14 a.m.
On Sun, Nov 11, 2012 at 03:50:37PM -0600, Eric Sandeen wrote:
> ext4_da_block_invalidatepages is missing a pagevec_init(),
> which means that pvec->cold contains random garbage.
> 
> This affects whether the page goes to the front or
> back of the LRU when ->cold makes it to
> free_hot_cold_page()
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> Cc: stable@vger.kernel.org

Applied, thanks.

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index b3c243b..f89c0e5 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1503,6 +1503,8 @@  static void ext4_da_block_invalidatepages(struct mpage_da_data *mpd)
 
 	index = mpd->first_page;
 	end   = mpd->next_page - 1;
+
+	pagevec_init(&pvec, 0);
 	while (index <= end) {
 		nr_pages = pagevec_lookup(&pvec, mapping, index, PAGEVEC_SIZE);
 		if (nr_pages == 0)