Jim Meyering wrote: > jeff.liu wrote: >> jeff.liu wrote: >>> Hi Jim, >>> >>> Thanks for your prompt response, I will fix this issue when all review done. >> Hi Jim, >> >> For my current implementation, I just have another thought to remove the >> "char *fname" from struct >> extent_scan, and add a new item "int errno" to save the errno set by >> ioctl(2) or lseek(2) if either >> call failed. >> at first, I am intended to use "char *fname" for the debugging purpose >> inside, however, maybe its >> better to do such things outside of the module according to the return value >> and errno. this change >> can not only reduce the memory allocation for 'fname' but also make a neatly >> open_extent_scan() >> interface. >> >> /* Structure used to reserve extent scan information per file. */ >> struct extent_scan >> { >> .... >> int errno; >> .... >> }; >> >> void >> open_extent_scan (int src_fd, struct extent_scan **scan); >> >> >> Is it better? > > That would be better. > Since there is only one diagnostic using that file name > you can do the same from the caller. > > In fact, why store errno in that struct at all? > Can't you just ensure that errno is set to the proper value when it fails? Indeed, there is no need to store 'errno'.
Thanks, -Jeff > > >