Subject: Re: bug#6131: [PATCH]: fiemap support for efficient sparse file copy

From: "jeff.liu" <[email-masked]>
Date: Wed, 29 Sep 2010 15:35:17 +0800

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