> 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