From e7fdbaf015655af4eec7e4655b9306e1db862a40 Mon Sep 17 00:00:00 2001 From: Andre Noll Date: Fri, 6 Jun 2008 11:34:50 +0200 Subject: [PATCH] Move para_truncate from osl.c to fd.c. --- fd.c | 31 +++++++++++++++++++++++++++++++ fd.h | 1 + osl.c | 31 ------------------------------- osl_core.h | 1 - 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/fd.c b/fd.c index b889d9d..920bce9 100644 --- a/fd.c +++ b/fd.c @@ -322,3 +322,34 @@ __must_check __printf_1_2 __malloc char *make_message(const char *fmt, ...) return p; } +/** + * A wrapper for truncate(2) + * + * \param path Name of the regular file to truncate + * \param size Number of bytes to \b shave \b off + * + * Truncate the regular file named by \a path by \a size bytes. + * + * \return Standard. + * + * \sa truncate(2) + */ +int para_truncate(const char *path, off_t size) +{ + int ret; + struct stat statbuf; + + ret = -E_OSL_STAT; + if (stat(path, &statbuf) < 0) + goto out; + ret = -E_OSL_BAD_SIZE; + if (statbuf.st_size < size) + goto out; + ret = -E_OSL_TRUNC; + if (truncate(path, statbuf.st_size - size) < 0) + goto out; + ret = 1; +out: + return ret; +} + diff --git a/fd.h b/fd.h index 4b80206..9c43eec 100644 --- a/fd.h +++ b/fd.h @@ -14,6 +14,7 @@ int mmap_full_file(const char *filename, int open_mode, void **map, int osl_munmap(void *start, size_t length); int write_all(int fd, const char *buf, size_t *len); int write_file(const char *filename, const void *buf, size_t size); +int para_truncate(const char *filename, off_t size); /** * A wrapper for mkdir(2). diff --git a/osl.c b/osl.c index 0837429..3e41c53 100644 --- a/osl.c +++ b/osl.c @@ -1178,37 +1178,6 @@ static int append_row_index(const struct osl_table *t, char *row_index) return ret; } -/** - * A wrapper for truncate(2) - * - * \param path Name of the regular file to truncate - * \param size Number of bytes to \b shave \b off - * - * Truncate the regular file named by \a path by \a size bytes. - * - * \return Standard. - * - * \sa truncate(2) - */ -int para_truncate(const char *path, off_t size) -{ - int ret; - struct stat statbuf; - - ret = -E_OSL_STAT; - if (stat(path, &statbuf) < 0) - goto out; - ret = -E_OSL_BAD_SIZE; - if (statbuf.st_size < size) - goto out; - ret = -E_OSL_TRUNC; - if (truncate(path, statbuf.st_size - size) < 0) - goto out; - ret = 1; -out: - return ret; -} - static int truncate_mapped_file(const struct osl_table *t, unsigned col_num, off_t size) { diff --git a/osl_core.h b/osl_core.h index 966ef6f..8a575c6 100644 --- a/osl_core.h +++ b/osl_core.h @@ -83,7 +83,6 @@ int init_table_structure(const struct osl_table_description *desc, int row_is_invalid(struct osl_table *t, uint32_t row_num); int get_mapped_object(const struct osl_table *t, unsigned col_num, uint32_t row_num, struct osl_object *obj); -int para_truncate(const char *filename, off_t size); int unmap_table(struct osl_table *t, enum osl_close_flags flags); int init_rbtrees(struct osl_table *t); -- 2.39.2