diff options
Diffstat (limited to '')
-rw-r--r-- | fuse/fuse.c | 5 | ||||
-rw-r--r-- | fuse/fuse_lowlevel.c | 127 |
2 files changed, 101 insertions, 31 deletions
diff --git a/fuse/fuse.c b/fuse/fuse.c index 448c9cd50..98170cf9a 100644 --- a/fuse/fuse.c +++ b/fuse/fuse.c @@ -517,6 +517,7 @@ static int try_get_path(struct fuse *f, fuse_ino_t nodeid, const char *name, 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 @@ static int try_get_path(struct fuse *f, fuse_ino_t nodeid, const char *name, if (!wnode->ticket) wnode->ticket = ticket; err = -EAGAIN; + printf("setting err to EAGAIN\n"); goto out_free; } wnode->treelock = -1; @@ -541,16 +543,19 @@ static int try_get_path(struct fuse *f, fuse_ino_t nodeid, const char *name, 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 90f756e54..2e0ad0fd9 100644 --- a/fuse/fuse_lowlevel.c +++ b/fuse/fuse_lowlevel.c @@ -177,8 +177,10 @@ int fuse_reply_iov(fuse_req_t req, const struct iovec *iov, int count) 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 @@ int fuse_reply_entry(fuse_req_t req, const struct fuse_entry_param *e) /* 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 fuse_reply_ioctl_iov(fuse_req_t req, int result, const struct iovec *iov, 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 @@ static void do_lookup(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_getattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_setattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_access(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_readlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_mknod(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_mkdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_unlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_rmdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_symlink(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_rename(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_link(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_create(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_read(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_write(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_flush(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_fsync(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_readdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_fsyncdir(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_setxattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_getxattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_listxattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_removexattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_getlk(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_setlk_common(fuse_req_t req, fuse_ino_t nodeid, 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 @@ static void do_bmap(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_ioctl(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_poll(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void do_poll(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) req->f->op.poll(req, nodeid, &fi, ph); } else { + printf("ENOSYS do_poll\n"); fuse_reply_err(req, ENOSYS); } } @@ -1170,6 +1232,7 @@ static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg) 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 @@ static void fuse_ll_process(void *data, const char *buf, size_t len, 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; |