diff mbox series

[1/5] ext4: replace opencoded ext4_end_io_end() in ext4_put_io_end()

Message ID 20241220060757.1781418-2-libaokun@huaweicloud.com
State Superseded
Headers show
Series ext4: fix issues caused by data write-back failures | expand

Commit Message

Baokun Li Dec. 20, 2024, 6:07 a.m. UTC
From: Baokun Li <libaokun1@huawei.com>

This reduces duplicate code and ensures that a “potential data loss”
warning is available if the unwritten conversion fails.

Signed-off-by: Baokun Li <libaokun1@huawei.com>
---
 fs/ext4/page-io.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

Comments

Markus Elfring Dec. 20, 2024, 10:22 a.m. UTC | #1
> This reduces duplicate code and ensures that a “potential data loss”
> warning is available if the unwritten conversion fails.

See also:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.13-rc3#n94

Regards,
Markus
Jan Kara Dec. 20, 2024, 10:26 a.m. UTC | #2
On Fri 20-12-24 14:07:53, libaokun@huaweicloud.com wrote:
> From: Baokun Li <libaokun1@huawei.com>
> 
> This reduces duplicate code and ensures that a “potential data loss”
> warning is available if the unwritten conversion fails.
> 
> Signed-off-by: Baokun Li <libaokun1@huawei.com>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/ext4/page-io.c | 13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
> index 69b8a7221a2b..f53b018ea259 100644
> --- a/fs/ext4/page-io.c
> +++ b/fs/ext4/page-io.c
> @@ -299,18 +299,13 @@ void ext4_put_io_end_defer(ext4_io_end_t *io_end)
>  
>  int ext4_put_io_end(ext4_io_end_t *io_end)
>  {
> -	int err = 0;
> -
>  	if (refcount_dec_and_test(&io_end->count)) {
> -		if (io_end->flag & EXT4_IO_END_UNWRITTEN) {
> -			err = ext4_convert_unwritten_io_end_vec(io_end->handle,
> -								io_end);
> -			io_end->handle = NULL;
> -			ext4_clear_io_unwritten_flag(io_end);
> -		}
> +		if (io_end->flag & EXT4_IO_END_UNWRITTEN)
> +			return ext4_end_io_end(io_end);
> +
>  		ext4_release_io_end(io_end);
>  	}
> -	return err;
> +	return 0;
>  }
>  
>  ext4_io_end_t *ext4_get_io_end(ext4_io_end_t *io_end)
> -- 
> 2.46.1
>
diff mbox series

Patch

diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index 69b8a7221a2b..f53b018ea259 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -299,18 +299,13 @@  void ext4_put_io_end_defer(ext4_io_end_t *io_end)
 
 int ext4_put_io_end(ext4_io_end_t *io_end)
 {
-	int err = 0;
-
 	if (refcount_dec_and_test(&io_end->count)) {
-		if (io_end->flag & EXT4_IO_END_UNWRITTEN) {
-			err = ext4_convert_unwritten_io_end_vec(io_end->handle,
-								io_end);
-			io_end->handle = NULL;
-			ext4_clear_io_unwritten_flag(io_end);
-		}
+		if (io_end->flag & EXT4_IO_END_UNWRITTEN)
+			return ext4_end_io_end(io_end);
+
 		ext4_release_io_end(io_end);
 	}
-	return err;
+	return 0;
 }
 
 ext4_io_end_t *ext4_get_io_end(ext4_io_end_t *io_end)