summaryrefslogtreecommitdiff
path: root/lib/libfuse/fuse_private.h
diff options
context:
space:
mode:
authorhelg <helg@cvs.openbsd.org>2018-05-16 13:09:18 +0000
committerhelg <helg@cvs.openbsd.org>2018-05-16 13:09:18 +0000
commitd910e586dcc4f7a5b90e3119e23cfdc9b286e103 (patch)
tree4abad4cbdbe7ce7e53e4a6b5dc0736bcb188a696 /lib/libfuse/fuse_private.h
parenta6265a707f22a90ee6c9db1375dc53bccf89c0ca (diff)
libfuse should not maintain state for FBT_READDIR. If a directory is
opened multiple times (either from the same process or different processes) then FUSE will not reliably return the directory entries to both file descriptors. ok mpi@
Diffstat (limited to 'lib/libfuse/fuse_private.h')
-rw-r--r--lib/libfuse/fuse_private.h15
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/libfuse/fuse_private.h b/lib/libfuse/fuse_private.h
index 53f1400966a..7a5a3045893 100644
--- a/lib/libfuse/fuse_private.h
+++ b/lib/libfuse/fuse_private.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: fuse_private.h,v 1.17 2017/12/18 11:41:41 helg Exp $ */
+/* $OpenBSD: fuse_private.h,v 1.18 2018/05/16 13:09:17 helg Exp $ */
/*
* Copyright (c) 2013 Sylvestre Gallon <ccna.syl@gmail.com>
*
@@ -29,7 +29,6 @@
#include "fuse.h"
-struct fuse_dirhandle;
struct fuse_args;
struct fuse_vnode {
@@ -38,11 +37,21 @@ struct fuse_vnode {
unsigned int ref;
char path[NAME_MAX + 1];
- struct fuse_dirhandle *fd;
SIMPLEQ_ENTRY(fuse_vnode) node; /* for dict */
};
+typedef struct fuse_dirhandle {
+ struct fuse *fuse;
+ fuse_fill_dir_t filler;
+ void *buf;
+ int full;
+ uint32_t size;
+ uint32_t start;
+ uint32_t idx;
+ off_t off;
+} *fuse_dirh_t;
+
SIMPLEQ_HEAD(fuse_vn_head, fuse_vnode);
SPLAY_HEAD(dict, dictentry);
SPLAY_HEAD(tree, treeentry);