Re: [PATCH] mm/writeback: fix dereferencing NULL mapping->host

From: Steven Rostedt
Date: Tue Nov 29 2022 - 09:56:39 EST


On Tue, 29 Nov 2022 11:32:59 +0800
Andrew Yang <andrew.yang@xxxxxxxxxxxx> wrote:

> From: "andrew.yang" <andrew.yang@xxxxxxxxxxxx>
>
> Check before dereferencing mapping->host
>
> Signed-off-by: andrew.yang <andrew.yang@xxxxxxxxxxxx>
> ---
> include/trace/events/writeback.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
> index 86b2a82da546..56f6e114d3ed 100644
> --- a/include/trace/events/writeback.h
> +++ b/include/trace/events/writeback.h
> @@ -68,7 +68,7 @@ DECLARE_EVENT_CLASS(writeback_folio_template,
> strscpy_pad(__entry->name,
> bdi_dev_name(mapping ? inode_to_bdi(mapping->host) :
> NULL), 32);
> - __entry->ino = mapping ? mapping->host->i_ino : 0;
> + __entry->ino = mapping && mapping->host ? mapping->host->i_ino : 0;

I hate remembering precedence. Can we add parenthesis around this to be
clear?

__entry->ino = (mapping && mapping->host) ? mapping->host->i_ino : 0;

Thanks,

-- Steve


> __entry->index = folio->index;
> ),
>