typedef struct fill_context {
struct fill_item *first;
struct fill_item *last;
+ off_t off;
fuse_req_t req;
fuse_ino_t ino;
BOOL filled;
sz = fuse_add_direntry(fill_ctx->req,
¤t->buf[current->off],
current->bufsize - current->off,
- filename, &st, current->off);
+ filename, &st, current->off + fill_ctx->off);
if (!sz || ((current->off + sz) > current->bufsize)) {
newone = (ntfs_fuse_fill_item_t*)ntfs_malloc
(sizeof(ntfs_fuse_fill_item_t)
newone->next = (ntfs_fuse_fill_item_t*)NULL;
current->next = newone;
fill_ctx->last = newone;
+ fill_ctx->off += current->off;
current = newone;
sz = fuse_add_direntry(fill_ctx->req,
current->buf,
current->bufsize - current->off,
- filename, &st, current->off);
+ filename, &st, fill_ctx->off);
if (!sz) {
errno = EIO;
ntfs_log_error("Could not add a"
= (ntfs_fuse_fill_item_t*)NULL;
fill->filled = FALSE;
fill->ino = ino;
+ fill->off = 0;
}
fi->fh = (long)fill;
}
fill->req = req;
fill->first = first;
fill->last = first;
+ fill->off = 0;
ni = ntfs_inode_open(ctx->vol,INODE(ino));
if (!ni)
err = -errno;