commit:     1831f92290a0076480d365430b61511b4b7619db
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 18 07:05:42 2025 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Nov 18 07:05:42 2025 +0000
URL:        https://gitweb.gentoo.org/proj/steve.git/commit/?id=1831f922

Consistently take PID from fi->fh

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 steve.cxx | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/steve.cxx b/steve.cxx
index 0c9f1e1..f12e10b 100644
--- a/steve.cxx
+++ b/steve.cxx
@@ -35,7 +35,7 @@ static const char *usage =
 
 struct steve_read_waiter {
        fuse_req_t req;
-       pid_t pid;
+       uint64_t pid;
 };
 
 struct steve_state {
@@ -113,7 +113,7 @@ static void steve_open(fuse_req_t req, struct 
fuse_file_info *fi)
        fuse_reply_open(req, fi);
 
        if (state->verbose)
-               printf("Device open by PID %d\n", context->pid);
+               printf("Device open by PID %ld\n", fi->fh);
 }
 
 static void steve_release(fuse_req_t req, struct fuse_file_info *fi)
@@ -132,7 +132,7 @@ static void steve_interrupt(fuse_req_t req, void *userdata)
        for (auto it = state->read_waiters.begin(); it != 
state->read_waiters.end(); ++it) {
                if (it->req == req) {
                        if (state->verbose)
-                               printf("Passed EINTR to PID %d\n", it->pid);
+                               printf("Passed EINTR to PID %ld\n", it->pid);
                        state->read_waiters.erase(it);
                        break;
                }
@@ -142,7 +142,6 @@ static void steve_interrupt(fuse_req_t req, void *userdata)
 static void steve_read(
        fuse_req_t req, size_t size, off_t off, struct fuse_file_info *fi)
 {
-       const struct fuse_ctx *context = fuse_req_ctx(req);
        steve_state *state = static_cast<steve_state *>(fuse_req_userdata(req));
 
        if (off != 0) {
@@ -158,8 +157,8 @@ static void steve_read(
        if (state->tokens > 0) {
                state->tokens--;
                if (state->verbose)
-                       printf("Giving job token to PID %d, %d left\n",
-                                       context->pid, state->tokens);
+                       printf("Giving job token to PID %ld, %d left\n",
+                                       fi->fh, state->tokens);
                fuse_reply_buf(req, "+", 1);
                return;
        }
@@ -169,9 +168,9 @@ static void steve_read(
                return;
        }
 
-       state->read_waiters.emplace_back(steve_read_waiter{req, context->pid});
+       state->read_waiters.emplace_back(steve_read_waiter{req, fi->fh});
        if (state->verbose)
-               printf("No free job token for PID %d, waiting\n", context->pid);
+               printf("No free job token for PID %ld, waiting\n", fi->fh);
        fuse_req_interrupt_func(req, steve_interrupt, state);
 }
 
@@ -182,7 +181,7 @@ static void steve_wake_waiters(steve_state *state)
 
                state->tokens--;
                if (state->verbose)
-                       printf("Giving job token to PID %d, %d left\n",
+                       printf("Giving job token to PID %ld, %d left\n",
                                        read_waiter->pid, state->tokens);
                fuse_reply_buf(read_waiter->req, "+", 1);
                state->read_waiters.pop_front();
@@ -193,7 +192,6 @@ static void steve_write(
        fuse_req_t req, const char *buf, size_t size, off_t off,
        struct fuse_file_info *fi)
 {
-       const struct fuse_ctx *context = fuse_req_ctx(req);
        steve_state *state = static_cast<steve_state *>(fuse_req_userdata(req));
 
        if (off != 0) {
@@ -203,8 +201,8 @@ static void steve_write(
 
        state->tokens += size;
        if (state->verbose)
-               printf("PID %d returned %zd tokens, %d available now\n",
-                               context->pid, size, state->tokens);
+               printf("PID %ld returned %zd tokens, %d available now\n",
+                               fi->fh, size, state->tokens);
        fuse_reply_write(req, size);
 
        /* Since we have jobs now, see if anyone's waiting */

Reply via email to