X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=io_uring_engine.cpp;h=63a3af78a86256ad4469443e6f872b4f890a43bc;hb=fd6198891d6fd9642effc0843fef6f23b991af3e;hp=ab9f411c7774ad7905bfbde901459540ee3c4a23;hpb=acce03bb32917e21f2d1d49c5a460d3cd2f72a11;p=plocate diff --git a/io_uring_engine.cpp b/io_uring_engine.cpp index ab9f411..63a3af7 100644 --- a/io_uring_engine.cpp +++ b/io_uring_engine.cpp @@ -46,7 +46,7 @@ IOUringEngine::IOUringEngine(size_t slop_bytes) #endif } -void IOUringEngine::submit_stat(const char *path, std::function cb) +void IOUringEngine::submit_stat(const char *path [[maybe_unused]], std::function cb [[maybe_unused]]) { assert(supports_stat); @@ -115,7 +115,7 @@ void IOUringEngine::submit_read_internal(io_uring_sqe *sqe, int fd, size_t len, ++pending_reads; } -void IOUringEngine::submit_stat_internal(io_uring_sqe *sqe, char *path, std::function cb) +void IOUringEngine::submit_stat_internal(io_uring_sqe *sqe, char *path, std::function cb) { PendingRead *pending = new PendingRead; pending->op = OP_STAT; @@ -123,7 +123,7 @@ void IOUringEngine::submit_stat_internal(io_uring_sqe *sqe, char *path, std::fun pending->stat.pathname = path; pending->stat.buf = new struct statx; - io_uring_prep_statx(sqe, /*fd=*/-1, pending->stat.pathname, AT_STATX_SYNC_AS_STAT, STATX_MODE, pending->stat.buf); + io_uring_prep_statx(sqe, /*fd=*/-1, pending->stat.pathname, AT_STATX_SYNC_AS_STAT | AT_SYMLINK_NOFOLLOW, STATX_MODE, pending->stat.buf); io_uring_sqe_set_data(sqe, pending); ++pending_reads; } @@ -166,7 +166,7 @@ void IOUringEngine::finish() --pending_reads; size_t old_pending_reads = pending_reads; - pending->stat_cb(); + pending->stat_cb(cqe->res == 0); free(pending->stat.pathname); delete pending->stat.buf; delete pending;