*
* \sa lseek(2).
*/
-int para_lseek(int fd, off_t *offset, int whence)
+static int __lseek(int fd, off_t *offset, int whence)
{
*offset = lseek(fd, *offset, whence);
int ret = -E_LSEEK;
*
* \sa write(2).
*/
-ssize_t para_write(int fd, const void *buf, size_t size)
+static ssize_t __write(int fd, const void *buf, size_t size)
{
ssize_t ret;
*
* \sa para_write().
*/
-ssize_t para_write_all(int fd, const void *buf, size_t size)
+static ssize_t write_all(int fd, const void *buf, size_t size)
{
// DEBUG_LOG("writing %zu bytes\n", size);
const char *b = buf;
while (size) {
- ssize_t ret = para_write(fd, b, size);
+ ssize_t ret = __write(fd, b, size);
// DEBUG_LOG("ret: %zd\n", ret);
if (ret < 0)
return ret;
*
* \sa para_open(), para_write().
*/
-int para_write_file(const char *filename, const void *buf, size_t size)
+static int write_file(const char *filename, const void *buf, size_t size)
{
int ret, fd;
if (ret < 0)
return ret;
fd = ret;
- ret = para_write_all(fd, buf, size);
+ ret = write_all(fd, buf, size);
if (ret < 0)
goto out;
ret = 1;
return ret;
fd = ret;
if (header && header_size) {
- ret = para_write_all(fd, header, header_size);
+ ret = write_all(fd, header, header_size);
if (ret < 0)
goto out;
}
- ret = para_write_all(fd, data, data_size);
+ ret = write_all(fd, data, data_size);
if (ret < 0)
goto out;
if (new_pos) {
off_t offset = 0;
- ret = para_lseek(fd, &offset, SEEK_END);
+ ret = __lseek(fd, &offset, SEEK_END);
if (ret < 0)
goto out;
// DEBUG_LOG("new file size: " FMT_OFF_T "\n", offset);
return ret;
}
-/**
- * Traverse the given directory recursively.
- *
- * \param dirname The directory to traverse.
- * \param func The function to call for each entry.
- * \param private_data Pointer to an arbitrary data structure.
- *
- * For each regular file under \a dirname, the supplied function \a func is
- * called. The full path of the regular file and the \a private_data pointer
- * are passed to \a func. Directories for which the calling process has no
- * permissions to change to are silently ignored.
- *
- * \return Standard.
- */
-int for_each_file_in_dir(const char *dirname,
- int (*func)(const char *, void *), void *private_data)
-{
- DIR *dir;
- struct dirent *entry;
- int cwd_fd, ret2, ret = para_opendir(dirname, &dir, &cwd_fd);
-
- if (ret < 0)
- return ret == -ERRNO_TO_ERROR(EACCES)? 1 : ret;
- /* scan cwd recursively */
- while ((entry = readdir(dir))) {
- mode_t m;
- char *tmp;
- struct stat s;
-
- if (!strcmp(entry->d_name, "."))
- continue;
- if (!strcmp(entry->d_name, ".."))
- continue;
- if (lstat(entry->d_name, &s) == -1)
- continue;
- m = s.st_mode;
- if (!S_ISREG(m) && !S_ISDIR(m))
- continue;
- tmp = make_message("%s/%s", dirname, entry->d_name);
- ret = -ERRNO_TO_ERROR(ENOMEM);
- if (!tmp)
- goto out;
- if (!S_ISDIR(m)) {
- ret = func(tmp, private_data);
- free(tmp);
- if (ret < 0)
- goto out;
- continue;
- }
- /* directory */
- ret = for_each_file_in_dir(tmp, func, private_data);
- free(tmp);
- if (ret < 0)
- goto out;
- }
- ret = 1;
-out:
- closedir(dir);
- ret2 = para_fchdir(cwd_fd);
- if (ret2 < 0 && ret >= 0)
- ret = ret2;
- close(cwd_fd);
- return ret;
-}
-
static int verify_name(const char *name)
{
if (!name)
assert(offset = size);
filename = index_filename(t->desc);
if (filename)
- ret = para_write_file(filename, buf, size);
+ ret = write_file(filename, buf, size);
else
ret = -ERRNO_TO_ERROR(ENOMEM);
free(buf);
filename = disk_storage_path(t, col_num, ds_name);
if (!filename)
return -ERRNO_TO_ERROR(ENOMEM);
- ret = para_write_file(filename, obj->data, obj->size);
+ ret = write_file(filename, obj->data, obj->size);
free(filename);
return ret;
}