2020-02-26 04:03:25

by yangerkun

[permalink] [raw]
Subject: [PATCH] ext4: using matching invalidatepage in ext4_writepage

Run generic/388 with journal data mode sometimes may trigger the warning
in ext4_invalidatepage. Actually, we should use the matching invalidatepage
in ext4_writepage.

Signed-off-by: yangerkun <[email protected]>
---
fs/ext4/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index fa0ff78dc033..78e805d42ada 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1974,7 +1974,7 @@ static int ext4_writepage(struct page *page,
bool keep_towrite = false;

if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
- ext4_invalidatepage(page, 0, PAGE_SIZE);
+ inode->i_mapping->a_ops->invalidatepage(page, 0, PAGE_SIZE);
unlock_page(page);
return -EIO;
}
--
2.23.0.rc2.8.gff66981f45


2020-02-26 10:20:34

by Ritesh Harjani

[permalink] [raw]
Subject: Re: [PATCH] ext4: using matching invalidatepage in ext4_writepage



On 2/26/20 9:40 AM, yangerkun wrote:
> Run generic/388 with journal data mode sometimes may trigger the warning
> in ext4_invalidatepage. Actually, we should use the matching invalidatepage
> in ext4_writepage.
>
> Signed-off-by: yangerkun <[email protected]>

generic/388 still fails, but the patch makes sense to me and also avoids
kernel warning.

Reviewed-by: Ritesh Harjani <[email protected]>

> ---
> fs/ext4/inode.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index fa0ff78dc033..78e805d42ada 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -1974,7 +1974,7 @@ static int ext4_writepage(struct page *page,
> bool keep_towrite = false;
>
> if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
> - ext4_invalidatepage(page, 0, PAGE_SIZE);
> + inode->i_mapping->a_ops->invalidatepage(page, 0, PAGE_SIZE);
> unlock_page(page);
> return -EIO;
> }
>

2020-02-26 12:04:21

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] ext4: using matching invalidatepage in ext4_writepage

On Wed 26-02-20 12:10:02, yangerkun wrote:
> Run generic/388 with journal data mode sometimes may trigger the warning
> in ext4_invalidatepage. Actually, we should use the matching invalidatepage
> in ext4_writepage.
>
> Signed-off-by: yangerkun <[email protected]>

Thanks for the patch! It looks good to me. You can add:

Reviewed-by: Jan Kara <[email protected]>

Honza

> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index fa0ff78dc033..78e805d42ada 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -1974,7 +1974,7 @@ static int ext4_writepage(struct page *page,
> bool keep_towrite = false;
>
> if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
> - ext4_invalidatepage(page, 0, PAGE_SIZE);
> + inode->i_mapping->a_ops->invalidatepage(page, 0, PAGE_SIZE);
> unlock_page(page);
> return -EIO;
> }
> --
> 2.23.0.rc2.8.gff66981f45
>
--
Jan Kara <[email protected]>
SUSE Labs, CR

2020-03-16 10:46:12

by yangerkun

[permalink] [raw]
Subject: Re: [PATCH] ext4: using matching invalidatepage in ext4_writepage

Hi, Ted, can you consider to apply this patch.

On 2020/2/26 12:10, yangerkun wrote:
> Run generic/388 with journal data mode sometimes may trigger the warning
> in ext4_invalidatepage. Actually, we should use the matching invalidatepage
> in ext4_writepage.
>
> Signed-off-by: yangerkun <[email protected]>
> ---
> fs/ext4/inode.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
> index fa0ff78dc033..78e805d42ada 100644
> --- a/fs/ext4/inode.c
> +++ b/fs/ext4/inode.c
> @@ -1974,7 +1974,7 @@ static int ext4_writepage(struct page *page,
> bool keep_towrite = false;
>
> if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) {
> - ext4_invalidatepage(page, 0, PAGE_SIZE);
> + inode->i_mapping->a_ops->invalidatepage(page, 0, PAGE_SIZE);
> unlock_page(page);
> return -EIO;
> }

2020-04-10 03:18:25

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] ext4: using matching invalidatepage in ext4_writepage

On Wed, Feb 26, 2020 at 12:10:02PM +0800, yangerkun wrote:
> Run generic/388 with journal data mode sometimes may trigger the warning
> in ext4_invalidatepage. Actually, we should use the matching invalidatepage
> in ext4_writepage.
>
> Signed-off-by: yangerkun <[email protected]>

Applied, thanks. Apologies for overlooking this patch earlier.

- Ted