change fuse to be compiled with TW_INCLUDE_FUSE_EXFAT
update exfat_fuse to newest updates
Always compile mkexfatfs
diff --git a/fuse/fuse.c b/fuse/fuse.c
index 448c9cd..98170cf 100644
--- a/fuse/fuse.c
+++ b/fuse/fuse.c
@@ -517,6 +517,7 @@
if (name != NULL) {
s = add_name(&buf, &bufsize, s, name);
err = -ENOMEM;
+ printf("setting err to ENOMEM\n");
if (s == NULL)
goto out_free;
}
@@ -530,6 +531,7 @@
if (!wnode->ticket)
wnode->ticket = ticket;
err = -EAGAIN;
+ printf("setting err to EAGAIN\n");
goto out_free;
}
wnode->treelock = -1;
@@ -541,16 +543,19 @@
for (node = get_node(f, nodeid); node->nodeid != FUSE_ROOT_ID;
node = node->parent) {
err = -ENOENT;
+ printf("setting err to ENOENT\n");
if (node->name == NULL || node->parent == NULL)
goto out_unlock;
err = -ENOMEM;
+ printf("setting err to ENOMEM\n");
s = add_name(&buf, &bufsize, s, node->name);
if (s == NULL)
goto out_unlock;
if (ticket) {
err = -EAGAIN;
+ printf("setting err to EAGAIN\n");
if (node->treelock == -1 ||
(node->ticket && node->ticket != ticket))
goto out_unlock;
diff --git a/fuse/fuse_lowlevel.c b/fuse/fuse_lowlevel.c
index 90f756e..2e0ad0f 100644
--- a/fuse/fuse_lowlevel.c
+++ b/fuse/fuse_lowlevel.c
@@ -177,8 +177,10 @@
struct iovec *padded_iov;
padded_iov = malloc((count + 1) * sizeof(struct iovec));
- if (padded_iov == NULL)
+ if (padded_iov == NULL) {
+ printf("ENOMEM fuse_reply_iov\n");
return fuse_reply_err(req, -ENOMEM);
+ }
memcpy(padded_iov + 1, iov, count * sizeof(struct iovec));
count++;
@@ -308,8 +310,10 @@
/* before ABI 7.4 e->ino == 0 was invalid, only ENOENT meant
negative entry */
- if (!e->ino && req->f->conn.proto_minor < 4)
+ if (!e->ino && req->f->conn.proto_minor < 4) {
+ printf("ENOENT fuse_reply_entry\n");
return fuse_reply_err(req, ENOENT);
+ }
memset(&arg, 0, sizeof(arg));
fill_entry(&arg, e);
@@ -485,8 +489,10 @@
int res;
padded_iov = malloc((count + 2) * sizeof(struct iovec));
- if (padded_iov == NULL)
+ if (padded_iov == NULL) {
+ printf("ENOMEM fuse_reply_err\n");
return fuse_reply_err(req, -ENOMEM);
+ }
memset(&arg, 0, sizeof(arg));
arg.result = result;
@@ -517,8 +523,10 @@
if (req->f->op.lookup)
req->f->op.lookup(req, nodeid, name);
- else
+ else {
+ printf("ENOSYS do_lookup\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_forget(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -549,8 +557,10 @@
if (req->f->op.getattr)
req->f->op.getattr(req, nodeid, fip);
- else
+ else {
+ printf("ENOSYS do_getattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_setattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -581,8 +591,10 @@
FUSE_SET_ATTR_MTIME_NOW;
req->f->op.setattr(req, nodeid, &stbuf, arg->valid, fi);
- } else
+ } else {
+ printf("ENOSYS do_setattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_access(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -591,8 +603,10 @@
if (req->f->op.access)
req->f->op.access(req, nodeid, arg->mask);
- else
+ else {
+ printf("ENOSYS do_access\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_readlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -601,8 +615,10 @@
if (req->f->op.readlink)
req->f->op.readlink(req, nodeid);
- else
+ else {
+ printf("ENOSYS do_readlink\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_mknod(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -617,8 +633,10 @@
if (req->f->op.mknod)
req->f->op.mknod(req, nodeid, name, arg->mode, arg->rdev);
- else
+ else {
+ printf("ENOSYS do_mknod\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_mkdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -630,8 +648,10 @@
if (req->f->op.mkdir)
req->f->op.mkdir(req, nodeid, PARAM(arg), arg->mode);
- else
+ else {
+ printf("ENOSYS do_mkdir\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_unlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -640,8 +660,10 @@
if (req->f->op.unlink)
req->f->op.unlink(req, nodeid, name);
- else
+ else {
+ printf("ENOSYS do_unlink\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_rmdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -650,8 +672,10 @@
if (req->f->op.rmdir)
req->f->op.rmdir(req, nodeid, name);
- else
+ else {
+ printf("ENOSYS do_rmdir\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_symlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -661,8 +685,10 @@
if (req->f->op.symlink)
req->f->op.symlink(req, linkname, nodeid, name);
- else
+ else {
+ printf("ENOSYS do_symlink\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_rename(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -673,8 +699,10 @@
if (req->f->op.rename)
req->f->op.rename(req, nodeid, oldname, arg->newdir, newname);
- else
+ else {
+ printf("ENOSYS do_rename\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_link(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -683,8 +711,10 @@
if (req->f->op.link)
req->f->op.link(req, arg->oldnodeid, nodeid, PARAM(arg));
- else
+ else {
+ printf("ENOSYS do_link\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_create(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -704,8 +734,10 @@
name = (char *) inarg + sizeof(struct fuse_open_in);
req->f->op.create(req, nodeid, name, arg->mode, &fi);
- } else
+ } else {
+ printf("ENOSYS do_create\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_open(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -737,8 +769,10 @@
fi.flags = arg->flags;
}
req->f->op.read(req, nodeid, arg->size, arg->offset, &fi);
- } else
+ } else {
+ printf("ENOSYS do_read\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_write(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -763,8 +797,10 @@
if (req->f->op.write)
req->f->op.write(req, nodeid, param, arg->size,
arg->offset, &fi);
- else
+ else {
+ printf("ENOSYS do_write\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_flush(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -781,8 +817,10 @@
if (req->f->op.flush)
req->f->op.flush(req, nodeid, &fi);
- else
+ else {
+ printf("ENOSYS do_flush\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_release(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -816,8 +854,10 @@
if (req->f->op.fsync)
req->f->op.fsync(req, nodeid, arg->fsync_flags & 1, &fi);
- else
+ else {
+ printf("ENOSYS do_fsync\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_opendir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -845,8 +885,10 @@
if (req->f->op.readdir)
req->f->op.readdir(req, nodeid, arg->size, arg->offset, &fi);
- else
+ else {
+ printf("ENOSYS do_fsync\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_releasedir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -876,8 +918,10 @@
if (req->f->op.fsyncdir)
req->f->op.fsyncdir(req, nodeid, arg->fsync_flags & 1, &fi);
- else
+ else {
+ printf("ENOSYS do_fsyncdir\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_statfs(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -905,8 +949,10 @@
if (req->f->op.setxattr)
req->f->op.setxattr(req, nodeid, name, value, arg->size,
arg->flags);
- else
+ else {
+ printf("ENOSYS do_setxattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_getxattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -915,8 +961,10 @@
if (req->f->op.getxattr)
req->f->op.getxattr(req, nodeid, PARAM(arg), arg->size);
- else
+ else {
+ printf("ENOSYS do_getxattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_listxattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -925,8 +973,10 @@
if (req->f->op.listxattr)
req->f->op.listxattr(req, nodeid, arg->size);
- else
+ else {
+ printf("ENOSYS do_listxattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_removexattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -935,8 +985,10 @@
if (req->f->op.removexattr)
req->f->op.removexattr(req, nodeid, name);
- else
+ else {
+ printf("ENOSYS do_removetxattr\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void convert_fuse_file_lock(struct fuse_file_lock *fl,
@@ -966,8 +1018,10 @@
convert_fuse_file_lock(&arg->lk, &flock);
if (req->f->op.getlk)
req->f->op.getlk(req, nodeid, &fi, &flock);
- else
+ else {
+ printf("do_getlk ENOSYS\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_setlk_common(fuse_req_t req, fuse_ino_t nodeid,
@@ -984,8 +1038,10 @@
convert_fuse_file_lock(&arg->lk, &flock);
if (req->f->op.setlk)
req->f->op.setlk(req, nodeid, &fi, &flock, sleep);
- else
+ else {
+ printf("do_getlk ENOSYS\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_setlk(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -1085,8 +1141,10 @@
if (req->f->op.bmap)
req->f->op.bmap(req, nodeid, arg->blocksize, arg->block);
- else
+ else {
+ printf("do_bmap ENOSYS\n");
fuse_reply_err(req, ENOSYS);
+ }
}
static void do_ioctl(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
@@ -1104,8 +1162,10 @@
req->f->op.ioctl(req, nodeid, arg->cmd,
(void *)(uintptr_t)arg->arg, &fi, flags,
in_buf, arg->in_size, arg->out_size);
- else
+ else {
+ printf("do_ioctl ENOSYS\n");
fuse_reply_err(req, ENOSYS);
+ }
}
void fuse_pollhandle_destroy(struct fuse_pollhandle *ph)
@@ -1128,6 +1188,7 @@
if (arg->flags & FUSE_POLL_SCHEDULE_NOTIFY) {
ph = malloc(sizeof(struct fuse_pollhandle));
if (ph == NULL) {
+ printf("ENOMEM do_poll\n");
fuse_reply_err(req, ENOMEM);
return;
}
@@ -1138,6 +1199,7 @@
req->f->op.poll(req, nodeid, &fi, ph);
} else {
+ printf("ENOSYS do_poll\n");
fuse_reply_err(req, ENOSYS);
}
}
@@ -1170,6 +1232,7 @@
if (arg->major < 7) {
fprintf(stderr, "fuse: unsupported protocol version: %u.%u\n",
arg->major, arg->minor);
+ printf("EPROTO do_init\n");
fuse_reply_err(req, EPROTO);
return;
}
@@ -1509,8 +1572,10 @@
intr = check_interrupt(f, req);
list_add_req(req, &f->list);
pthread_mutex_unlock(&f->lock);
- if (intr)
+ if (intr) {
+ printf("EAGAIN fuse_llprocess\n");
fuse_reply_err(intr, EAGAIN);
+ }
}
fuse_ll_ops[in->opcode].func(req, in->nodeid, inarg);
return;