Beispiel #1
0
static int farm_format(struct siocb *iocb)
{
    char path[PATH_MAX];
    unsigned ret;
    const uint8_t name[] = "farm";

    dprintf("try get a clean store\n");
    snprintf(path, sizeof(path), "%s", obj_path);
    ret = rmdir_r(path);
    if (ret && ret != -ENOENT) {
        eprintf("failed to remove %s: %s\n", path, strerror(-ret));
        return SD_RES_EIO;
    }
    if (mkdir(path, def_dmode) < 0) {
        eprintf("%m\n");
        return SD_RES_EIO;
    }

    if (set_cluster_store(name) < 0)
        return SD_RES_EIO;

    trunk_reset();

    return SD_RES_SUCCESS;
}
Beispiel #2
0
int default_cleanup(void)
{
	rmdir_r(stale_dir);
	if (mkdir(stale_dir, 0755) < 0) {
		eprintf("%m\n");
		return SD_RES_EIO;
	}

	return SD_RES_SUCCESS;
}
Beispiel #3
0
int main(int argc, char **argv)
{
	if (argc != 2) 
	{
		usage();
		return -1;
	}

	rmdir_r(argv[1]);

	return 0;
}
Beispiel #4
0
int default_format(void)
{
	unsigned ret;

	dprintf("try get a clean store\n");
	ret = rmdir_r(obj_path);
	if (ret && ret != -ENOENT) {
		eprintf("failed to remove %s: %s\n", obj_path, strerror(-ret));
		return SD_RES_EIO;
	}
	if (mkdir(obj_path, def_dmode) < 0) {
		eprintf("%m\n");
		return SD_RES_EIO;
	}

	return SD_RES_SUCCESS;
}
Beispiel #5
0
/* Purge directory recursively */
int purge_directory(const char *dir_path)
{
	int ret = 0;
	struct stat s;
	DIR *dir;
	struct dirent *d;
	char path[PATH_MAX];

	dir = opendir(dir_path);
	if (!dir) {
		if (errno != ENOENT)
			sd_err("failed to open %s: %m", dir_path);
		return -errno;
	}

	while ((d = readdir(dir))) {
		if (!strcmp(d->d_name, ".") || !strcmp(d->d_name, ".."))
			continue;

		snprintf(path, sizeof(path), "%s/%s", dir_path, d->d_name);
		ret = stat(path, &s);
		if (ret) {
			sd_err("failed to stat %s: %m", path);
			goto out;
		}
		if (S_ISDIR(s.st_mode))
			ret = rmdir_r(path);
		else
			ret = unlink(path);

		if (ret != 0) {
			sd_err("failed to remove %s %s: %m",
			       S_ISDIR(s.st_mode) ? "directory" : "file", path);
			goto out;
		}
	}
out:
	closedir(dir);
	return ret;
}