diff --git a/libcutils/fs.c b/libcutils/fs.c
index 6508b67..a9889b2 100644
--- a/libcutils/fs.c
+++ b/libcutils/fs.c
@@ -73,14 +73,14 @@
 }
 
 int fs_read_atomic_int(const char* path, int* out_value) {
-    int fd = open(path, O_RDONLY);
+    int fd = TEMP_FAILURE_RETRY(open(path, O_RDONLY));
     if (fd == -1) {
         ALOGE("Failed to read %s: %s", path, strerror(errno));
         return -1;
     }
 
     char buf[BUF_SIZE];
-    if (read(fd, buf, BUF_SIZE) == -1) {
+    if (TEMP_FAILURE_RETRY(read(fd, buf, BUF_SIZE)) == -1) {
         ALOGE("Failed to read %s: %s", path, strerror(errno));
         goto fail;
     }
@@ -104,7 +104,7 @@
         return -1;
     }
 
-    int fd = mkstemp(temp);
+    int fd = TEMP_FAILURE_RETRY(mkstemp(temp));
     if (fd == -1) {
         ALOGE("Failed to open %s: %s", temp, strerror(errno));
         return -1;
@@ -116,7 +116,7 @@
         ALOGE("Value %d too large: %s", value, strerror(errno));
         goto fail;
     }
-    if (write(fd, buf, len) < len) {
+    if (TEMP_FAILURE_RETRY(write(fd, buf, len)) < len) {
         ALOGE("Failed to write %s: %s", temp, strerror(errno));
         goto fail;
     }
