diff --git a/module/bdev/uring/bdev_uring.c b/module/bdev/uring/bdev_uring.c index 703f8794e..e17baaaaa 100644 --- a/module/bdev/uring/bdev_uring.c +++ b/module/bdev/uring/bdev_uring.c @@ -105,10 +105,14 @@ bdev_uring_open(struct bdev_uring *bdev) fd = open(bdev->filename, O_RDWR | O_DIRECT | O_NOATIME); if (fd < 0) { - SPDK_ERRLOG("open() failed (file:%s), errno %d: %s\n", - bdev->filename, errno, spdk_strerror(errno)); - bdev->fd = -1; - return -1; + /* Try without O_DIRECT for non-disk files */ + fd = open(bdev->filename, O_RDWR | O_NOATIME); + if (fd < 0) { + SPDK_ERRLOG("open() failed (file:%s), errno %d: %s\n", + bdev->filename, errno, spdk_strerror(errno)); + bdev->fd = -1; + return -1; + } } bdev->fd = fd;