From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2298 invoked by alias); 24 Mar 2009 11:49:17 -0000 Received: (qmail 2282 invoked by uid 9452); 24 Mar 2009 11:49:16 -0000 Date: Tue, 24 Mar 2009 11:49:00 -0000 Message-ID: <20090324114916.2279.qmail@sourceware.org> From: ccaulfield@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW daemons/clvmd/clvmd.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2009-03/txt/msg00027.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: ccaulfield@sourceware.org 2009-03-24 11:49:16 Modified files: . : WHATS_NEW daemons/clvmd : clvmd.c Log message: Block SIGINT & SIGTERM in clvmd subthreads so they don't delay shutdown. Patch from Xinwei Hu, Thanks Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1071&r2=1.1072 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/daemons/clvmd/clvmd.c.diff?cvsroot=lvm2&r1=1.55&r2=1.56 --- LVM2/WHATS_NEW 2009/03/23 22:57:27 1.1071 +++ LVM2/WHATS_NEW 2009/03/24 11:49:15 1.1072 @@ -1,5 +1,6 @@ Version 2.02.46 - ================================ + Block SIGTERM & SIGINT in clvmd subthreads. Detect and conditionally wipe swapspace signatures in pvcreate. Fix maximal volume count check for snapshots if max_lv set for volume group. Fix lvcreate to remove cow volume if the snapshot creation fails. --- LVM2/daemons/clvmd/clvmd.c 2009/02/22 22:11:58 1.55 +++ LVM2/daemons/clvmd/clvmd.c 2009/03/24 11:49:15 1.56 @@ -372,9 +372,11 @@ signal(SIGHUP, sighup_handler); signal(SIGPIPE, SIG_IGN); - /* Block SIGUSR2 in the main process */ + /* Block SIGUSR2/SIGINT/SIGTERM in process */ sigemptyset(&ss); sigaddset(&ss, SIGUSR2); + sigaddset(&ss, SIGINT); + sigaddset(&ss, SIGTERM); sigprocmask(SIG_BLOCK, &ss, NULL); /* Initialise the LVM thread variables */ @@ -669,6 +671,11 @@ { DEBUGLOG("Using timeout of %d seconds\n", cmd_timeout); + sigset_t ss; + sigemptyset(&ss); + sigaddset(&ss, SIGINT); + sigaddset(&ss, SIGTERM); + pthread_sigmask(SIG_UNBLOCK, &ss, NULL); /* Main loop */ while (!quit) { fd_set in;