--- Incremental.c | 2 +- util.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- mdadm-3.2.2.orig/Incremental.c +++ mdadm-3.2.2/Incremental.c @@ -1135,7 +1135,7 @@ static int partition_try_spare(char *dev devname = NULL; goto next; } - fd = open(devname, O_RDONLY); + fd = open(devname, O_RDONLY|O_DIRECT|O_NONBLOCK); if (fd < 0) goto next; if (get_dev_size(fd, devname, &devsectors) == 0) --- mdadm-3.2.2.orig/util.c +++ mdadm-3.2.2/util.c @@ -814,7 +814,7 @@ int dev_open(char *dev, int flags) int minor; if (!dev) return -1; - flags |= O_DIRECT; + flags |= O_DIRECT | O_NONBLOCK; major = strtoul(dev, &e, 0); if (e > dev && *e == ':' && e[1] &&