Author: dj Date: 2011-05-18 10:26:04 -0600 (Wed, 18 May 2011) New Revision: 2302
Added: trunk/udev/udev-168-settle-1.patch Log: Add udev-168-settle-1.patch Added: trunk/udev/udev-168-settle-1.patch =================================================================== --- trunk/udev/udev-168-settle-1.patch (rev 0) +++ trunk/udev/udev-168-settle-1.patch 2011-05-18 16:26:04 UTC (rev 2302) @@ -0,0 +1,79 @@ +Submitted By: DJ Lucas <dj AT linuxfromscratch DOT org> +Date: 2011-05-18 +Initial Package Version: 168 +Upstream Status: comitted +Origin: http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff_plain;h=2738ec2cf721db0c0deac2ba0abdc73cf7739e9f +and +http://git.kernel.org/?p=linux/hotplug/udev.git;a=patch;h=12f79fb0b9c919787d8a7d4307895d3d6b4b029b +Description: Fixes udevadm settle behavior. + +diff -Nuar udev-168-orig/udev/udevd.c udev-168/udev/udevd.c +--- udev-168-orig/udev/udevd.c 2011-04-21 07:05:13.000000000 -0500 ++++ udev-168/udev/udevd.c 2011-05-18 11:14:54.000000000 -0500 +@@ -1408,6 +1408,13 @@ + + udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024); + ++ /* create queue file before signalling 'ready', to make sure we block 'settle' */ ++ udev_queue_export = udev_queue_export_new(udev); ++ if (udev_queue_export == NULL) { ++ err(udev, "error creating queue file\n"); ++ goto exit; ++ } ++ + if (daemonize) { + pid_t pid; + int fd; +@@ -1421,8 +1428,8 @@ + rc = 4; + goto exit; + default: +- rc = 0; +- goto exit; ++ rc = EXIT_SUCCESS; ++ goto exit_keep_queue; + } + + setsid(); +@@ -1521,12 +1528,6 @@ + goto exit; + } + +- udev_queue_export = udev_queue_export_new(udev); +- if (udev_queue_export == NULL) { +- err(udev, "error creating queue file\n"); +- goto exit; +- } +- + memset(&ep_ctrl, 0, sizeof(struct epoll_event)); + ep_ctrl.events = EPOLLIN; + ep_ctrl.data.fd = fd_ctrl; +@@ -1708,9 +1709,10 @@ + } + } + +- udev_queue_export_cleanup(udev_queue_export); +- rc = 0; ++ rc = EXIT_SUCCESS; + exit: ++ udev_queue_export_cleanup(udev_queue_export); ++exit_keep_queue: + if (fd_ep >= 0) + close(fd_ep); + worker_list_cleanup(udev); +diff -Nuar udev-168-orig/libudev/libudev-queue-private.c udev-168/libudev/libudev-queue-private.c +--- udev-168-orig/libudev/libudev-queue-private.c 2011-04-07 18:09:20.000000000 -0500 ++++ udev-168/libudev/libudev-queue-private.c 2011-05-18 11:14:59.000000000 -0500 +@@ -103,9 +103,10 @@ + { + char filename[UTIL_PATH_SIZE]; + ++ if (udev_queue_export == NULL) ++ return; + util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev_queue_export->udev), "/queue.tmp", NULL); + unlink(filename); +- + util_strscpyl(filename, sizeof(filename), udev_get_run_path(udev_queue_export->udev), "/queue.bin", NULL); + unlink(filename); + } + -- http://linuxfromscratch.org/mailman/listinfo/patches FAQ: http://www.linuxfromscratch.org/faq/ Unsubscribe: See the above information page
