Message ID | 20230628150243.17771-1-andriy.shevchenko@linux.intel.com (mailing list archive) |
---|---|
State | Rejected |
Headers | show |
Series | [v1,1/1] f2fs: Use return value of strreplace() | expand |
On Wed, 28 Jun 2023 18:02:43 +0300 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Since strreplace() returns the pointer to the string itself, > we may use it directly in the code. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > --- > include/trace/events/f2fs.h | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h > index 793f82cc1515..f5994515290c 100644 > --- a/include/trace/events/f2fs.h > +++ b/include/trace/events/f2fs.h > @@ -2234,13 +2234,11 @@ DECLARE_EVENT_CLASS(f2fs__rw_start, > * because this screws up the tooling that parses > * the traces. > */ > - __assign_str(pathbuf, pathname); > - (void)strreplace(__get_str(pathbuf), ' ', '_'); > + __assign_str(pathbuf, strreplace(pathname, ' ', '_')); But this modifies the pathname that is passed into the trace event, which is something that a trace point should never do! In fact, the char *pathname, really should be a const char * (for which this would fail to build). Note, I went to look for these events and I can not find where they are used. Should these events just be deleted? -- Steve > __entry->offset = offset; > __entry->bytes = bytes; > __entry->i_size = i_size_read(inode); > - __assign_str(cmdline, command); > - (void)strreplace(__get_str(cmdline), ' ', '_'); > + __assign_str(cmdline, strreplace(command, ' ', '_')); > __entry->pid = pid; > __entry->ino = inode->i_ino; > ),
On 07/10, Steven Rostedt wrote: > On Wed, 28 Jun 2023 18:02:43 +0300 > Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > > > Since strreplace() returns the pointer to the string itself, > > we may use it directly in the code. > > > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> > > --- > > include/trace/events/f2fs.h | 6 ++---- > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > > diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h > > index 793f82cc1515..f5994515290c 100644 > > --- a/include/trace/events/f2fs.h > > +++ b/include/trace/events/f2fs.h > > @@ -2234,13 +2234,11 @@ DECLARE_EVENT_CLASS(f2fs__rw_start, > > * because this screws up the tooling that parses > > * the traces. > > */ > > - __assign_str(pathbuf, pathname); > > - (void)strreplace(__get_str(pathbuf), ' ', '_'); > > + __assign_str(pathbuf, strreplace(pathname, ' ', '_')); > > But this modifies the pathname that is passed into the trace event, which > is something that a trace point should never do! In fact, the char > *pathname, really should be a const char * (for which this would fail to > build). > > Note, I went to look for these events and I can not find where they are > used. Should these events just be deleted? Hmm, this was a part of upstream effort to replace the previous android_fs tracepoints like: https://android-review.git.corp.google.com/c/platform/system/extras/+/2223339 > > -- Steve > > > > __entry->offset = offset; > > __entry->bytes = bytes; > > __entry->i_size = i_size_read(inode); > > - __assign_str(cmdline, command); > > - (void)strreplace(__get_str(cmdline), ' ', '_'); > > + __assign_str(cmdline, strreplace(command, ' ', '_')); > > __entry->pid = pid; > > __entry->ino = inode->i_ino; > > ),
diff --git a/include/trace/events/f2fs.h b/include/trace/events/f2fs.h index 793f82cc1515..f5994515290c 100644 --- a/include/trace/events/f2fs.h +++ b/include/trace/events/f2fs.h @@ -2234,13 +2234,11 @@ DECLARE_EVENT_CLASS(f2fs__rw_start, * because this screws up the tooling that parses * the traces. */ - __assign_str(pathbuf, pathname); - (void)strreplace(__get_str(pathbuf), ' ', '_'); + __assign_str(pathbuf, strreplace(pathname, ' ', '_')); __entry->offset = offset; __entry->bytes = bytes; __entry->i_size = i_size_read(inode); - __assign_str(cmdline, command); - (void)strreplace(__get_str(cmdline), ' ', '_'); + __assign_str(cmdline, strreplace(command, ' ', '_')); __entry->pid = pid; __entry->ino = inode->i_ino; ),
Since strreplace() returns the pointer to the string itself, we may use it directly in the code. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- include/trace/events/f2fs.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)