Re: [PATCH 3/3] xfs: clean up buffer allocation in xlog_do_recovery_pass

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 29, 2024 at 09:02:00AM +0200, Christoph Hellwig wrote:
> Merge the initial xlog_alloc_buffer calls, and pass the variable
> designating the length that is initialized to 1 above instead of passing
> the open coded 1 directly.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Nice cleanup,
Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
>  fs/xfs/xfs_log_recover.c | 13 ++++++-------
>  1 file changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
> index d73bec65f93b46..d2e8b903945741 100644
> --- a/fs/xfs/xfs_log_recover.c
> +++ b/fs/xfs/xfs_log_recover.c
> @@ -3010,6 +3010,10 @@ xlog_do_recovery_pass(
>  	for (i = 0; i < XLOG_RHASH_SIZE; i++)
>  		INIT_HLIST_HEAD(&rhash[i]);
>  
> +	hbp = xlog_alloc_buffer(log, hblks);
> +	if (!hbp)
> +		return -ENOMEM;
> +
>  	/*
>  	 * Read the header of the tail block and get the iclog buffer size from
>  	 * h_size.  Use this to tell how many sectors make up the log header.
> @@ -3020,10 +3024,6 @@ xlog_do_recovery_pass(
>  		 * iclog header and extract the header size from it.  Get a
>  		 * new hbp that is the correct size.
>  		 */
> -		hbp = xlog_alloc_buffer(log, 1);
> -		if (!hbp)
> -			return -ENOMEM;
> -
>  		error = xlog_bread(log, tail_blk, 1, hbp, &offset);
>  		if (error)
>  			goto bread_err1;
> @@ -3071,16 +3071,15 @@ xlog_do_recovery_pass(
>  			if (hblks > 1) {
>  				kvfree(hbp);
>  				hbp = xlog_alloc_buffer(log, hblks);
> +				if (!hbp)
> +					return -ENOMEM;
>  			}
>  		}
>  	} else {
>  		ASSERT(log->l_sectBBsize == 1);
> -		hbp = xlog_alloc_buffer(log, 1);
>  		h_size = XLOG_BIG_RECORD_BSIZE;
>  	}
>  
> -	if (!hbp)
> -		return -ENOMEM;
>  	dbp = xlog_alloc_buffer(log, BTOBB(h_size));
>  	if (!dbp) {
>  		kvfree(hbp);
> -- 
> 2.39.2
> 
> 




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux