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 |
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; > ), >
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 --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; ),