diff options
author | helg <helg@cvs.openbsd.org> | 2018-05-16 13:09:18 +0000 |
---|---|---|
committer | helg <helg@cvs.openbsd.org> | 2018-05-16 13:09:18 +0000 |
commit | d910e586dcc4f7a5b90e3119e23cfdc9b286e103 (patch) | |
tree | 4abad4cbdbe7ce7e53e4a6b5dc0736bcb188a696 /lib/libfuse/fuse_private.h | |
parent | a6265a707f22a90ee6c9db1375dc53bccf89c0ca (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.h | 15 |
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); |