linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergey Vlasov <vsu@altlinux.ru>
To: linux-hotplug@vger.kernel.org
Subject: [PATCH] udevd: Init signal pipe before forking to background
Date: Sun, 21 Jan 2007 20:28:43 +0000	[thread overview]
Message-ID: <11694113233279-git-send-email-vsu@altlinux.ru> (raw)

Signal pipe setup may fail - perform it before forking to background,
so that the parent process may notice the startup failure.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
---
 udevd.c |   58 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 29 insertions(+), 29 deletions(-)

diff --git a/udevd.c b/udevd.c
index 79465a1..8c550d3 100644
--- a/udevd.c
+++ b/udevd.c
@@ -1006,6 +1006,35 @@ int main(int argc, char *argv[], char *envp[])
 		goto exit;
 	}
 
+	/* setup signal handler pipe */
+	retval = pipe(signal_pipe);
+	if (retval < 0) {
+		err("error getting pipes: %s", strerror(errno));
+		goto exit;
+	}
+
+	retval = fcntl(signal_pipe[READ_END], F_GETFL, 0);
+	if (retval < 0) {
+		err("error fcntl on read pipe: %s", strerror(errno));
+		goto exit;
+	}
+	retval = fcntl(signal_pipe[READ_END], F_SETFL, retval | O_NONBLOCK);
+	if (retval < 0) {
+		err("error fcntl on read pipe: %s", strerror(errno));
+		goto exit;
+	}
+
+	retval = fcntl(signal_pipe[WRITE_END], F_GETFL, 0);
+	if (retval < 0) {
+		err("error fcntl on write pipe: %s", strerror(errno));
+		goto exit;
+	}
+	retval = fcntl(signal_pipe[WRITE_END], F_SETFL, retval | O_NONBLOCK);
+	if (retval < 0) {
+		err("error fcntl on write pipe: %s", strerror(errno));
+		goto exit;
+	}
+
 	/* parse the rules and keep them in memory */
 	sysfs_init();
 	udev_rules_init(&rules, 1);
@@ -1062,35 +1091,6 @@ int main(int argc, char *argv[], char *envp[])
 		close(fd);
 	}
 
-	/* setup signal handler pipe */
-	retval = pipe(signal_pipe);
-	if (retval < 0) {
-		err("error getting pipes: %s", strerror(errno));
-		goto exit;
-	}
-
-	retval = fcntl(signal_pipe[READ_END], F_GETFL, 0);
-	if (retval < 0) {
-		err("error fcntl on read pipe: %s", strerror(errno));
-		goto exit;
-	}
-	retval = fcntl(signal_pipe[READ_END], F_SETFL, retval | O_NONBLOCK);
-	if (retval < 0) {
-		err("error fcntl on read pipe: %s", strerror(errno));
-		goto exit;
-	}
-
-	retval = fcntl(signal_pipe[WRITE_END], F_GETFL, 0);
-	if (retval < 0) {
-		err("error fcntl on write pipe: %s", strerror(errno));
-		goto exit;
-	}
-	retval = fcntl(signal_pipe[WRITE_END], F_SETFL, retval | O_NONBLOCK);
-	if (retval < 0) {
-		err("error fcntl on write pipe: %s", strerror(errno));
-		goto exit;
-	}
-
 	/* set signal handlers */
 	memset(&act, 0x00, sizeof(struct sigaction));
 	act.sa_handler = (void (*)(int)) sig_handler;
-- 
1.5.0.rc1.gbcae


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CIDÞVDEV
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

             reply	other threads:[~2007-01-21 20:28 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-21 20:28 Sergey Vlasov [this message]
2007-01-21 21:53 ` [PATCH] udevd: Init signal pipe before forking to background Kay Sievers

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=11694113233279-git-send-email-vsu@altlinux.ru \
    --to=vsu@altlinux.ru \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).