change fuse to be compiled with TW_INCLUDE_FUSE_EXFAT
update exfat_fuse to newest updates
Always compile mkexfatfs
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;