On Thu, Nov 14, 2019 at 6:10 PM Bob Peterson <[email protected]> wrote:
> In function gfs2_trans_begin, new transactions were created but their
> ail1 list, tr_ail1_list was never initialized. Therefore it relied
> upon other circumstances when the list became empty.
> This patch adds proper initialization of the list.

Could you please give a better explanation for this change?

> Signed-off-by: Bob Peterson <[email protected]>
> ---
>  fs/gfs2/trans.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
> index 9d4227330de4..d0efa322f940 100644
> --- a/fs/gfs2/trans.c
> +++ b/fs/gfs2/trans.c
> @@ -53,6 +53,7 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int 
> blocks,
>                                                    sizeof(u64));
>         INIT_LIST_HEAD(&tr->tr_databuf);
>         INIT_LIST_HEAD(&tr->tr_buf);
> +       INIT_LIST_HEAD(&tr->tr_ail1_list);
>
>         sb_start_intwrite(sdp->sd_vfs);
>
>

What code path accesses tr_ail1_list before it is initialized in gfs2_log_flush?
Should the INIT_LIST_HEAD(&tr->tr_ail1_list) in gfs2_log_flush
consequently be removed?

Thanks,
Andreas


Reply via email to