On 2017年11月30日 14:37, Qu Wenruo wrote:
> 
> 
> On 2017年11月29日 10:12, Su Yue wrote:
>> If ioctl of defrag range is unsupported, defrag will exit immediately.
>>
>> Since caller can handle the error, let cmd_filesystem_defrag()
>> close file, break the loop and return error instead of calling exit(1).
>>
>> Suggested-by: David Sterba <dste...@suse.com>
>> Signed-off-by: Su Yue <suy.f...@cn.fujitsu.com>
> 
> Reviewed-by: Qu Wenruo <w...@suse.com>
> 
> Thanks,
> Qu

Please ignore my tag.

The best solution is mentioned in the 1st patch.

Thanks,
Qu

>> ---
>> Changelog:
>> v2:  Separate the patch from commit 6e991b9161fa ("btrfs-progs: fi
>>      defrag: clean up duplicate code if find errors").
>> v3:  Call close_file_or_dir() before breaking the loop.
>> ---
>>  cmds-filesystem.c | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/cmds-filesystem.c b/cmds-filesystem.c
>> index 17d399d58adf..232d4e88e0c0 100644
>> --- a/cmds-filesystem.c
>> +++ b/cmds-filesystem.c
>> @@ -1049,8 +1049,10 @@ static int cmd_filesystem_defrag(int argc, char 
>> **argv)
>>              if (recursive && S_ISDIR(st.st_mode)) {
>>                      ret = nftw(argv[i], defrag_callback, 10,
>>                                              FTW_MOUNT | FTW_PHYS);
>> -                    if (ret == ENOTTY)
>> -                            exit(1);
>> +                    if (ret == ENOTTY) {
>> +                            close_file_or_dir(fd, dirstream);
>> +                            break;
>> +                    }
>>                      /* errors are handled in the callback */
>>                      ret = 0;
>>              } else {
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to