From: Timo Sirainen Date: Mon, 13 Jun 2016 14:31:34 +0000 (+0300) Subject: lib-fs: Code cleanup for fs-sis: Use struct fs.parent X-Git-Tag: 2.2.25.rc1~151 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3986d36de23a48beb85ff5ed5e3a864cb7ea9b12;p=thirdparty%2Fdovecot%2Fcore.git lib-fs: Code cleanup for fs-sis: Use struct fs.parent --- diff --git a/src/lib-fs/fs-sis-queue.c b/src/lib-fs/fs-sis-queue.c index 9b330229d0..fe970d8470 100644 --- a/src/lib-fs/fs-sis-queue.c +++ b/src/lib-fs/fs-sis-queue.c @@ -10,7 +10,6 @@ struct sis_queue_fs { struct fs fs; - struct fs *super; char *queue_dir; }; @@ -22,7 +21,7 @@ struct sis_queue_fs_file { static void fs_sis_queue_copy_error(struct sis_queue_fs *fs) { - fs_set_error(&fs->fs, "%s", fs_last_error(fs->super)); + fs_set_error(&fs->fs, "%s", fs_last_error(fs->fs.parent)); } static void fs_sis_queue_file_copy_error(struct sis_queue_fs_file *file) @@ -64,7 +63,7 @@ fs_sis_queue_init(struct fs *_fs, const char *args, parent_args = ""; else parent_name = t_strdup_until(parent_name, parent_args++); - if (fs_init(parent_name, parent_args, set, &fs->super, &error) < 0) { + if (fs_init(parent_name, parent_args, set, &_fs->parent, &error) < 0) { fs_set_error(_fs, "%s", error); return -1; } @@ -75,17 +74,15 @@ static void fs_sis_queue_deinit(struct fs *_fs) { struct sis_queue_fs *fs = (struct sis_queue_fs *)_fs; - if (fs->super != NULL) - fs_deinit(&fs->super); + if (_fs->parent != NULL) + fs_deinit(&_fs->parent); i_free(fs->queue_dir); i_free(fs); } static enum fs_properties fs_sis_queue_get_properties(struct fs *_fs) { - struct sis_queue_fs *fs = (struct sis_queue_fs *)_fs; - - return fs_get_properties(fs->super); + return fs_get_properties(_fs->parent); } static struct fs_file * @@ -103,7 +100,7 @@ fs_sis_queue_file_init(struct fs *_fs, const char *path, if (mode == FS_OPEN_MODE_APPEND) fs_set_error(_fs, "APPEND mode not supported"); else - file->super = fs_file_init(fs->super, path, mode | flags); + file->super = fs_file_init(_fs->parent, path, mode | flags); return &file->file; } @@ -144,9 +141,7 @@ fs_sis_queue_set_async_callback(struct fs_file *_file, static int fs_sis_queue_wait_async(struct fs *_fs) { - struct sis_queue_fs *fs = (struct sis_queue_fs *)_fs; - - return fs_wait_async(fs->super); + return fs_wait_async(_fs->parent); } static void @@ -206,9 +201,9 @@ static void fs_sis_queue_add(struct sis_queue_fs_file *file) fname = path; queue_path = t_strdup_printf("%s/%s", fs->queue_dir, fname); - queue_file = fs_file_init(fs->super, queue_path, FS_OPEN_MODE_CREATE); + queue_file = fs_file_init(fs->fs.parent, queue_path, FS_OPEN_MODE_CREATE); if (fs_write(queue_file, "", 0) < 0 && errno != EEXIST) - i_error("fs-sis-queue: %s", fs_last_error(fs->super)); + i_error("fs-sis-queue: %s", fs_last_error(fs->fs.parent)); fs_file_deinit(&queue_file); } @@ -348,9 +343,7 @@ static struct fs_iter * fs_sis_queue_iter_init(struct fs *_fs, const char *path, enum fs_iter_flags flags) { - struct sis_queue_fs *fs = (struct sis_queue_fs *)_fs; - - return fs_iter_init(fs->super, path, flags); + return fs_iter_init(_fs->parent, path, flags); } const struct fs fs_class_sis_queue = { diff --git a/src/lib-fs/fs-sis.c b/src/lib-fs/fs-sis.c index 1563c29592..8c705f171c 100644 --- a/src/lib-fs/fs-sis.c +++ b/src/lib-fs/fs-sis.c @@ -12,7 +12,6 @@ struct sis_fs { struct fs fs; - struct fs *super; }; struct sis_fs_file { @@ -31,7 +30,7 @@ struct sis_fs_file { static void fs_sis_copy_error(struct sis_fs *fs) { - fs_set_error(&fs->fs, "%s", fs_last_error(fs->super)); + fs_set_error(&fs->fs, "%s", fs_last_error(fs->fs.parent)); } static void fs_sis_file_copy_error(struct sis_fs_file *file) @@ -53,7 +52,6 @@ static struct fs *fs_sis_alloc(void) static int fs_sis_init(struct fs *_fs, const char *args, const struct fs_settings *set) { - struct sis_fs *fs = (struct sis_fs *)_fs; enum fs_properties props; const char *parent_name, *parent_args, *error; @@ -70,11 +68,11 @@ fs_sis_init(struct fs *_fs, const char *args, const struct fs_settings *set) parent_name = t_strdup_until(args, parent_args); parent_args++; } - if (fs_init(parent_name, parent_args, set, &fs->super, &error) < 0) { + if (fs_init(parent_name, parent_args, set, &_fs->parent, &error) < 0) { fs_set_error(_fs, "%s", error); return -1; } - props = fs_get_properties(fs->super); + props = fs_get_properties(_fs->parent); if ((props & FS_SIS_REQUIRED_PROPS) != FS_SIS_REQUIRED_PROPS) { fs_set_error(_fs, "%s backend can't be used with SIS", parent_name); @@ -87,16 +85,14 @@ static void fs_sis_deinit(struct fs *_fs) { struct sis_fs *fs = (struct sis_fs *)_fs; - if (fs->super != NULL) - fs_deinit(&fs->super); + if (_fs->parent != NULL) + fs_deinit(&_fs->parent); i_free(fs); } static enum fs_properties fs_sis_get_properties(struct fs *_fs) { - struct sis_fs *fs = (struct sis_fs *)_fs; - - return fs_get_properties(fs->super); + return fs_get_properties(_fs->parent); } static struct fs_file * @@ -124,7 +120,7 @@ fs_sis_file_init(struct fs *_fs, const char *path, /* if hashes/ already exists, open it */ file->hash_path = i_strdup_printf("%s/"HASH_DIR_NAME"/%s", dir, hash); - file->hash_file = fs_file_init(fs->super, file->hash_path, + file->hash_file = fs_file_init(_fs->parent, file->hash_path, FS_OPEN_MODE_READONLY); file->hash_input = fs_read_stream(file->hash_file, IO_BLOCK_SIZE); @@ -137,7 +133,7 @@ fs_sis_file_init(struct fs *_fs, const char *path, i_stream_destroy(&file->hash_input); } - file->super = fs_file_init(fs->super, path, mode | flags); + file->super = fs_file_init(_fs->parent, path, mode | flags); return &file->file; } @@ -181,9 +177,7 @@ fs_sis_set_async_callback(struct fs_file *_file, static int fs_sis_wait_async(struct fs *_fs) { - struct sis_fs *fs = (struct sis_fs *)_fs; - - return fs_wait_async(fs->super); + return fs_wait_async(_fs->parent); } static void @@ -486,9 +480,7 @@ static int fs_sis_delete(struct fs_file *_file) static struct fs_iter * fs_sis_iter_init(struct fs *_fs, const char *path, enum fs_iter_flags flags) { - struct sis_fs *fs = (struct sis_fs *)_fs; - - return fs_iter_init(fs->super, path, flags); + return fs_iter_init(_fs->parent, path, flags); } const struct fs fs_class_sis = {