Re: [PATCH v3 2/3] btrfs-progs: fi defrag: do not exit if defrag range ioctl is unsupported

2017-11-29 Thread Qu Wenruo


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 
>> Signed-off-by: Su Yue 
> 
> Reviewed-by: Qu Wenruo 
> 
> 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 {
>>
> 



signature.asc
Description: OpenPGP digital signature


Re: [PATCH v3 2/3] btrfs-progs: fi defrag: do not exit if defrag range ioctl is unsupported

2017-11-29 Thread Qu Wenruo


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 
> Signed-off-by: Su Yue 

Reviewed-by: Qu Wenruo 

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 {
> 



signature.asc
Description: OpenPGP digital signature


[PATCH v3 2/3] btrfs-progs: fi defrag: do not exit if defrag range ioctl is unsupported

2017-11-28 Thread Su Yue
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 
Signed-off-by: Su Yue 
---
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 {
-- 
2.15.0



--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html