From 83c7feee822b151c8ace2289b9226d6f01abc6e7 Mon Sep 17 00:00:00 2001 From: Falk Werner Date: Sun, 26 May 2019 16:30:01 +0200 Subject: [PATCH] fixes missing inode using stat and ls -i --- lib/webfuse/adapter/impl/operation/getattr.c | 4 +++- lib/webfuse/adapter/impl/operation/lookup.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/webfuse/adapter/impl/operation/getattr.c b/lib/webfuse/adapter/impl/operation/getattr.c index 75736a2..cef8eac 100644 --- a/lib/webfuse/adapter/impl/operation/getattr.c +++ b/lib/webfuse/adapter/impl/operation/getattr.c @@ -14,6 +14,7 @@ struct wf_impl_operation_getattr_context { fuse_req_t request; + fuse_ino_t inode; double timeout; uid_t uid; gid_t gid; @@ -36,6 +37,7 @@ static void wf_impl_operation_getattr_finished( { memset(&buffer, 0, sizeof(struct stat)); + buffer.st_ino = context->inode; buffer.st_mode = json_integer_value(mode_holder) & 0555; char const * type = json_string_value(type_holder); if (0 == strcmp("file", type)) @@ -54,7 +56,6 @@ static void wf_impl_operation_getattr_finished( buffer.st_atime = wf_impl_json_get_int(data, "atime", 0); buffer.st_mtime = wf_impl_json_get_int(data, "mtime", 0); buffer.st_ctime = wf_impl_json_get_int(data, "ctime", 0); - } else { @@ -87,6 +88,7 @@ void wf_impl_operation_getattr ( { struct wf_impl_operation_getattr_context * getattr_context = malloc(sizeof(struct wf_impl_operation_getattr_context)); getattr_context->request = request; + getattr_context->inode = inode; getattr_context->uid = context->uid; getattr_context->gid = context->gid; getattr_context->timeout = user_data->timeout; diff --git a/lib/webfuse/adapter/impl/operation/lookup.c b/lib/webfuse/adapter/impl/operation/lookup.c index 3749123..3f0cd3b 100644 --- a/lib/webfuse/adapter/impl/operation/lookup.c +++ b/lib/webfuse/adapter/impl/operation/lookup.c @@ -43,6 +43,7 @@ static void wf_impl_operation_lookup_finished( memset(&buffer, 0, sizeof(struct stat)); buffer.ino = json_integer_value(inode_holder); + buffer.attr.st_ino = buffer.ino; buffer.attr.st_mode = json_integer_value(mode_holder) & 0555; char const * type = json_string_value(type_holder); if (0 == strcmp("file", type))