From 6f3ca0804e2f29ee93809d107a815aef0d8d2ec3 Mon Sep 17 00:00:00 2001 From: Yao Liu Date: Wed, 6 Nov 2019 11:20:39 +0800 Subject: [PATCH] bdev/uring: try without O_DIRECT flag if non-disk file first open fails Signed-off-by: Yao Liu Change-Id: I74b5b146c23e5395d26f80ca4f950631bd4721cb Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473373 Community-CI: Broadcom SPDK FC-NVMe CI Reviewed-by: Tomasz Zawadzki Reviewed-by: Ben Walker Reviewed-by: Jim Harris Tested-by: SPDK CI Jenkins --- module/bdev/uring/bdev_uring.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) 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;