sshfs

sshfs で /var/tmp/portage を mount して emerge すると最後にエラーが出る。 まぁ、インストール自体には問題はないようなのだけど、なんかきもちわるい。

sshfs で rmdir が ENOTEMPTY を返すべき時に EPERM を返しているのが原因らしい。さて、どうやって直せばいいかなとソースを見ていたら

static void *process_requests(void *data_)
{
        (void) data_;

        while (1) {
                if (process_one_request() == -1)
                        break;
        }

        if (!sshfs.reconnect) {
                /* harakiri */
                kill(getpid(), SIGTERM);
        } else {
                pthread_mutex_lock(&sshfs.lock);
                sshfs.processing_thread_started = 0;
                close_conn();
                g_hash_table_foreach_remove(sshfs.reqtab, (GHRFunc) clean_req,
                                            NULL);
                sshfs.connver ++;
                pthread_mutex_unlock(&sshfs.lock);
        }
        return NULL;
}

…harakiri?