Beispiel #1
0
static int tar_import_write(const void *p, size_t sz, void *userdata) {
        TarImport *i = userdata;
        int r;

        if (i->grow_machine_directory && i->written_since_last_grow >= GROW_INTERVAL_BYTES) {
                i->written_since_last_grow = 0;
                grow_machine_directory();
        }

        r = loop_write(i->tar_fd, p, sz, false);
        if (r < 0)
                return r;

        i->written_uncompressed += sz;
        i->written_since_last_grow += sz;

        return 0;
}
Beispiel #2
0
static int raw_import_write(const void *p, size_t sz, void *userdata) {
        RawImport *i = userdata;
        ssize_t n;

        if (i->grow_machine_directory && i->written_since_last_grow >= GROW_INTERVAL_BYTES) {
                i->written_since_last_grow = 0;
                grow_machine_directory();
        }

        n = sparse_write(i->output_fd, p, sz, 64);
        if (n < 0)
                return (int) n;
        if ((size_t) n < sz)
                return -EIO;

        i->written_uncompressed += sz;
        i->written_since_last_grow += sz;

        return 0;
}