diff --git a/libntfs-3g/unix_io.c b/libntfs-3g/unix_io.c index c88e8f82..1103c7e3 100644 --- a/libntfs-3g/unix_io.c +++ b/libntfs-3g/unix_io.c @@ -143,6 +143,9 @@ static int ntfs_device_unix_io_open(struct ntfs_device *dev, int flags) *(int*)dev->d_private = open(dev->d_name, flags); if (*(int*)dev->d_private == -1) { err = errno; + /* if permission error and rw, retry read-only */ + if ((err == EACCES) && ((flags & O_RDWR) == O_RDWR)) + err = EROFS; goto err_out; } #ifdef HAVE_LINUX_FS_H diff --git a/libntfs-3g/volume.c b/libntfs-3g/volume.c index d36c7d55..7a1bcf29 100644 --- a/libntfs-3g/volume.c +++ b/libntfs-3g/volume.c @@ -529,7 +529,7 @@ ntfs_volume *ntfs_volume_startup(struct ntfs_device *dev, dev->d_name); goto error_exit; } else { - ntfs_log_info("Can only open '%s' as read-only\n", + ntfs_log_info("Error opening '%s' read-write\n", dev->d_name); NVolSetReadOnly(vol); }