Commit 9080ba8b authored by sevenuz's avatar sevenuz Committed by Julius Athenstaedt
Browse files

fix create error on distributed lookup

parent c9f0d64a
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -324,15 +324,16 @@ create_handler(fuse_req_t req, fuse_ino_t parent, const char* name, mode_t mode,
    }
    std::string path = get_path(parent_inode, name);
    int rc = gkfs::syscall::gkfs_create(path, mode);
    int errno_bu = errno;
    if(rc == -1) {
        fuse_log(FUSE_LOG_DEBUG, "here here mode %i flags %i \n", mode,
                 fi->flags);
        fuse_reply_err(req, 1);
        return;
        fuse_log(FUSE_LOG_DEBUG,
                 "create failed, here here mode %i flags %i errno %i\n", mode,
                 fi->flags, errno);
    }
    int fd = gkfs::syscall::gkfs_open(path, mode, fi->flags);
    if(fd < 0) {
        fuse_reply_err(req, ENOENT);
        fuse_log(FUSE_LOG_DEBUG, "create -> open failed errno\n", errno);
        fuse_reply_err(req, rc < 0 ? errno_bu : ENOENT);
        return;
    }
    fi->fh = fd;
@@ -340,7 +341,7 @@ create_handler(fuse_req_t req, fuse_ino_t parent, const char* name, mode_t mode,
    int sc = gkfs::syscall::gkfs_stat(path, &st);
    if(sc == -1) {
        fuse_log(FUSE_LOG_DEBUG, "thats why its not allowed \n");
        fuse_reply_err(req, 1);
        fuse_reply_err(req, ENOENT);
        return;
    }
    fuse_ino_t ino = alloc_inode(path);