[Libguestfs] [PATCH 1/2] Revert "daemon: Run udev_settle after pwrite-device finishes."

Richard W.M. Jones rjones at redhat.com
Mon Feb 6 21:56:07 UTC 2012


From: "Richard W.M. Jones" <rjones at redhat.com>

This reverts commit a9c8123c72db47bcab8dd738e8d5256a9ae87f11.
---
 daemon/file.c   |   18 +++---------------
 daemon/parted.c |    3 +--
 2 files changed, 4 insertions(+), 17 deletions(-)

diff --git a/daemon/file.c b/daemon/file.c
index 057e15d..91746e0 100644
--- a/daemon/file.c
+++ b/daemon/file.c
@@ -525,7 +525,7 @@ do_pread_device (const char *device, int count, int64_t offset, size_t *size_r)
 
 static int
 pwrite_fd (int fd, const char *content, size_t size, int64_t offset,
-           const char *display_path, int settle)
+           const char *display_path)
 {
   ssize_t r;
 
@@ -541,18 +541,6 @@ pwrite_fd (int fd, const char *content, size_t size, int64_t offset,
     return -1;
   }
 
-  /* When you call close on any block device, udev kicks off a rule
-   * which runs blkid to reexamine the device.  We need to wait for
-   * this rule to finish running since it holds the device open and
-   * can cause other operations to fail, notably BLKRRPART.  'settle'
-   * flag is only set on block devices.
-   *
-   * XXX We should be smarter about when we do this or should get rid
-   * of the udev rules since we don't use blkid in cached mode.
-   */
-  if (settle)
-    udev_settle ();
-
   return r;
 }
 
@@ -575,7 +563,7 @@ do_pwrite (const char *path, const char *content, size_t size, int64_t offset)
     return -1;
   }
 
-  return pwrite_fd (fd, content, size, offset, path, 0);
+  return pwrite_fd (fd, content, size, offset, path);
 }
 
 int
@@ -593,7 +581,7 @@ do_pwrite_device (const char *device, const char *content, size_t size,
     return -1;
   }
 
-  return pwrite_fd (fd, content, size, offset, device, 1);
+  return pwrite_fd (fd, content, size, offset, device);
 }
 
 /* This runs the 'file' command. */
diff --git a/daemon/parted.c b/daemon/parted.c
index 64a7d1d..16f0843 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -34,8 +34,7 @@
  * COMMAND_FLAG_FOLD_STDOUT_ON_STDERR flag.
  *
  * parted occasionally fails to do ioctl(BLKRRPART) on the device,
- * probably because udev monitors all 'close' on block devices
- * and runs 'blkid' which opens and examines the device.  We attempt
+ * apparently because of some internal race in the code.  We attempt
  * to detect and recover from this error if we can.
  */
 static int
-- 
1.7.6




More information about the Libguestfs mailing list