diff --git a/utils.h b/utils.h
index b0b28a8..728d992 100644
--- a/utils.h
+++ b/utils.h
@@ -12,6 +12,7 @@
 #include <string>
 #include <vector>
 
+#include <base/eintr_wrapper.h>
 #include <ext2fs/ext2fs.h>
 #include <glib.h>
 
@@ -276,8 +277,8 @@
   explicit ScopedFdCloser(int* fd) : fd_(fd), should_close_(true) {}
   ~ScopedFdCloser() {
     if (should_close_ && fd_ && (*fd_ >= 0)) {
-      close(*fd_);
-      *fd_ = -1;
+      if (!close(*fd_))
+        *fd_ = -1;
     }
   }
   void set_should_close(bool should_close) { should_close_ = should_close; }
@@ -287,6 +288,23 @@
   DISALLOW_COPY_AND_ASSIGN(ScopedFdCloser);
 };
 
+// An EINTR-immune file descriptor closer.
+class ScopedEintrSafeFdCloser {
+ public:
+  explicit ScopedEintrSafeFdCloser(int* fd) : fd_(fd), should_close_(true) {}
+  ~ScopedEintrSafeFdCloser() {
+    if (should_close_ && fd_ && (*fd_ >= 0)) {
+      if (!HANDLE_EINTR(close(*fd_)))
+        *fd_ = -1;
+    }
+  }
+  void set_should_close(bool should_close) { should_close_ = should_close; }
+ private:
+  int* fd_;
+  bool should_close_;
+  DISALLOW_COPY_AND_ASSIGN(ScopedEintrSafeFdCloser);
+};
+
 // Utility class to close a file system
 class ScopedExt2fsCloser {
  public:
