Commit b42e4bad authored by Julius Athenstaedt's avatar Julius Athenstaedt
Browse files

fix deadlock for pointertrick

parent 4fffcebb
Loading
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -76,13 +76,13 @@ alloc_inode(const std::string& path) {

static Inode*
get_inode(fuse_ino_t ino) {
    std::lock_guard<std::mutex> lk(ino_mutex);
    if(ino == FUSE_ROOT_ID) {
        return &root_inode;
    }
    if(gkfs::config::fuse::pointertrick) {
        return (Inode*) ino;
    } else {
        std::lock_guard<std::mutex> lk(ino_mutex);
        auto it = ino_map.find(ino);
        return it != ino_map.end() ? &it->second : nullptr;
    }
@@ -919,7 +919,8 @@ symlink_handler(fuse_req_t req, const char* linkname, fuse_ino_t parent,
                          target.substr(strlen(ud->mountpoint)).c_str());
    }

    DEBUG_INFO(ud, "mk symlink path %s target %s", path.c_str(), target.c_str());
    DEBUG_INFO(ud, "mk symlink path %s target %s", path.c_str(),
               target.c_str());
    int rc = gkfs::syscall::gkfs_mk_symlink(path, target);
    if(rc < 0) {
        fuse_reply_err(req, 1);