diff mbox series

mm/writeback: fix dereferencing NULL mapping->host

Message ID 20221129033304.4465-1-andrew.yang@mediatek.com (mailing list archive)
State New, archived
Headers show
Series mm/writeback: fix dereferencing NULL mapping->host | expand

Commit Message

Andrew Yang Nov. 29, 2022, 3:32 a.m. UTC
From: "andrew.yang" <andrew.yang@mediatek.com>

Check before dereferencing mapping->host

Signed-off-by: andrew.yang <andrew.yang@mediatek.com>
---
 include/trace/events/writeback.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Steven Rostedt Nov. 29, 2022, 2:56 p.m. UTC | #1
On Tue, 29 Nov 2022 11:32:59 +0800
Andrew Yang <andrew.yang@mediatek.com> wrote:

> From: "andrew.yang" <andrew.yang@mediatek.com>
> 
> Check before dereferencing mapping->host
> 
> Signed-off-by: andrew.yang <andrew.yang@mediatek.com>
> ---
>  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;
>  	),
>
Andrew Yang Nov. 30, 2022, 8:23 a.m. UTC | #2
On Tue, 2022-11-29 at 09:56 -0500, Steven Rostedt wrote:
> On Tue, 29 Nov 2022 11:32:59 +0800
> Andrew Yang <andrew.yang@mediatek.com> wrote:
> 
> > From: "andrew.yang" <andrew.yang@mediatek.com>
> > 
> > Check before dereferencing mapping->host
> > 
> > Signed-off-by: andrew.yang <andrew.yang@mediatek.com>
> > ---
> >  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;
> >  	),
> >  
> 
> 
Sure, that's a good suggestion
diff mbox series

Patch

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;
 		__entry->index = folio->index;
 	),