Re: [PATCH 4/9] spaceman/defrag: ctrl-c handler

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> On Jul 15, 2024, at 3:56 PM, Darrick J. Wong <djwong@xxxxxxxxxx> wrote:
> 
> On Thu, Jul 11, 2024 at 10:58:02PM +0000, Wengang Wang wrote:
>> 
>> 
>>> On Jul 9, 2024, at 2:08 PM, Darrick J. Wong <djwong@xxxxxxxxxx> wrote:
>>> 
>>> On Tue, Jul 09, 2024 at 12:10:23PM -0700, Wengang Wang wrote:
>>>> Add this handler to break the defrag better, so it has
>>>> 1. the stats reporting
>>>> 2. remove the temporary file
>>>> 
>>>> Signed-off-by: Wengang Wang <wen.gang.wang@xxxxxxxxxx>
>>>> ---
>>>> spaceman/defrag.c | 11 ++++++++++-
>>>> 1 file changed, 10 insertions(+), 1 deletion(-)
>>>> 
>>>> diff --git a/spaceman/defrag.c b/spaceman/defrag.c
>>>> index 9f11e36b..61e47a43 100644
>>>> --- a/spaceman/defrag.c
>>>> +++ b/spaceman/defrag.c
>>>> @@ -297,6 +297,13 @@ get_time_delta_us(struct timeval *pre_time, struct timeval *cur_time)
>>>> return us;
>>>> }
>>>> 
>>>> +static volatile bool usedKilled = false;
>>>> +void defrag_sigint_handler(int dummy)
>>>> +{
>>>> + usedKilled = true;
>>> 
>>> Not sure why some of these variables are camelCase and others not.
>>> Or why this global variable doesn't have a g_ prefix like the others?
>>> 
>> 
>> Yep, will change it to g_user_killed.
>> 
>>>> + printf("Please wait until current segment is defragmented\n");
>>> 
>>> Is it actually safe to call printf from a signal handler?  Handlers must
>>> be very careful about what they call -- regreSSHion was a result of
>>> openssh not getting this right.
>>> 
>>> (Granted spaceman isn't as critical...)
>>> 
>> 
>> As the ioctl of UNSHARE takes time, so the process would really stop a while
>> After user’s kil. The message is used as a quick response to user. It’s not actually
>> Has any functionality. If it’s not safe, we can remove the message.
> 
> $ man signal-safety

Yep, will remove the print.

Thanks,
Wengang





[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux