@@ -37,24 +37,23 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options)
3737 if (!ffPathExists (pathSysBlock , FF_PATHTYPE_DIRECTORY ))
3838 continue ;
3939
40- FFDiskIOResult * device = (FFDiskIOResult * ) ffListAdd (result );
41- ffStrbufInit (& device -> name );
40+ FF_STRBUF_AUTO_DESTROY name = ffStrbufCreate ();
4241
4342 {
4443 snprintf (pathSysBlock , PATH_MAX , "/sys/block/%s/device/vendor" , devName );
45- if (ffAppendFileBuffer (pathSysBlock , & device -> name ))
44+ if (ffAppendFileBuffer (pathSysBlock , & name ))
4645 {
47- ffStrbufTrimRightSpace (& device -> name );
48- if (device -> name .length > 0 )
49- ffStrbufAppendC (& device -> name , ' ' );
46+ ffStrbufTrimRightSpace (& name );
47+ if (name .length > 0 )
48+ ffStrbufAppendC (& name , ' ' );
5049 }
5150
5251 snprintf (pathSysBlock , PATH_MAX , "/sys/block/%s/device/model" , devName );
53- ffAppendFileBuffer (pathSysBlock , & device -> name );
54- ffStrbufTrimRightSpace (& device -> name );
52+ ffAppendFileBuffer (pathSysBlock , & name );
53+ ffStrbufTrimRightSpace (& name );
5554
56- if (device -> name .length == 0 )
57- ffStrbufSetS (& device -> name , devName );
55+ if (name .length == 0 )
56+ ffStrbufSetS (& name , devName );
5857 else if (ffStrStartsWith (devName , "nvme" ))
5958 {
6059 int devid , nsid ;
@@ -69,17 +68,13 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options)
6968 if (multiNs )
7069 {
7170 // In Asahi Linux, there are multiple namespaces for the same NVMe drive.
72- ffStrbufAppendF (& device -> name , " - %d" , nsid );
71+ ffStrbufAppendF (& name , " - %d" , nsid );
7372 }
7473 }
7574 }
7675
77- if (options -> namePrefix .length && !ffStrbufStartsWith (& device -> name , & options -> namePrefix ))
78- {
79- ffStrbufDestroy (& device -> name );
80- result -> length -- ;
76+ if (options -> namePrefix .length && !ffStrbufStartsWith (& name , & options -> namePrefix ))
8177 continue ;
82- }
8378 }
8479
8580 // I/Os merges sectors ticks ...
@@ -94,6 +89,8 @@ const char* ffDiskIOGetIoCounters(FFlist* result, FFDiskIOOptions* options)
9489 continue ;
9590 }
9691
92+ FFDiskIOResult * device = (FFDiskIOResult * ) ffListAdd (result );
93+ ffStrbufInitMove (& device -> name , & name );
9794 ffStrbufInitF (& device -> devPath , "/dev/%s" , devName );
9895 device -> bytesRead = sectorRead * 512 ;
9996 device -> bytesWritten = sectorWritten * 512 ;
0 commit comments