disk: Open whole block device with O_NONBLOCK

This would simplify handling of ENOMEDIUM error.
This commit is contained in:
Pali Rohár committed 2018-02-08 19:48:34 +01:00
1 parent e685787e67
commit a6c20b5ee4
1 file changed
+2 -4
+2 -4
View File
@@ -118,9 +118,8 @@ int disk_open_dev(int maj, int min, int partition, int readonly) {
blkdev[len] = 0;
fd = open(blkdev, (readonly ? O_RDONLY : O_RDWR) | O_EXCL);
fd = open(blkdev, (readonly ? O_RDONLY : O_RDWR) | O_EXCL | O_NONBLOCK);
if ( fd < 0 ) {
if ( errno != ENOMEDIUM )
ERROR_INFO("Cannot open block device %s", blkdev);
return -1;
} else {
@@ -155,9 +154,8 @@ int disk_open_dev(int maj, int min, int partition, int readonly) {
}
if ( fd < 0 && errno == ENOENT ) {
blkdev[len] = 0;
fd = open(blkdev, O_RDONLY);
fd = open(blkdev, O_RDONLY | O_NONBLOCK);
if ( fd < 0 ) {
if ( errno != ENOMEDIUM )
ERROR_INFO("Cannot open block device %s", blkdev);
} else {
close(fd);