OSDN Git Service

Print errno on device open/close/fsync failure.
authorrelan <relan@users.noreply.github.com>
Sun, 1 Jun 2014 20:02:48 +0000 (20:02 +0000)
committerrelan <relan@users.noreply.github.com>
Mon, 24 Aug 2015 05:26:16 +0000 (08:26 +0300)
Signed-off-by: Helg Bredow <xx404@msn.com>
libexfat/io.c

index 05fac61..9743c4e 100644 (file)
@@ -100,7 +100,8 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode)
                if (dev->fd == -1)
                {
                        free(dev);
-                       exfat_error("failed to open '%s' in read-only mode", spec);
+                       exfat_error("failed to open '%s' in read-only mode: %s", spec,
+                                       strerror(errno));
                        return NULL;
                }
                dev->mode = EXFAT_MODE_RO;
@@ -110,7 +111,8 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode)
                if (dev->fd == -1)
                {
                        free(dev);
-                       exfat_error("failed to open '%s' in read-write mode", spec);
+                       exfat_error("failed to open '%s' in read-write mode: %s", spec,
+                                       strerror(errno));
                        return NULL;
                }
                dev->mode = EXFAT_MODE_RW;
@@ -130,7 +132,7 @@ struct exfat_dev* exfat_open(const char* spec, enum exfat_mode mode)
                        break;
                }
                free(dev);
-               exfat_error("failed to open '%s'", spec);
+               exfat_error("failed to open '%s': %s", spec, strerror(errno));
                return NULL;
        }
 
@@ -254,7 +256,7 @@ int exfat_close(struct exfat_dev* dev)
 #endif
        if (close(dev->fd) != 0)
        {
-               exfat_error("failed to close device");
+               exfat_error("failed to close device: %s", strerror(errno));
                rc = -EIO;
        }
        free(dev);
@@ -274,7 +276,7 @@ int exfat_fsync(struct exfat_dev* dev)
 #endif
        if (fsync(dev->fd) != 0)
        {
-               exfat_error("fsync failed");
+               exfat_error("fsync failed: %s", strerror(errno));
                rc = -EIO;
        }
        return rc;