changeset 20508:c97e2a2d88b1

fs-sis*: Removed unnecessary error copying. It was probably needed in the beginning, but nowadays the parent-most fs keeps the error. There's no need to copy it around.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 05 Jul 2016 18:03:36 +0300
parents bceab6533a28
children eae8e0a6bf2e
files src/lib-fs/fs-sis-queue.c src/lib-fs/fs-sis.c
diffstat 2 files changed, 20 insertions(+), 108 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-fs/fs-sis-queue.c	Tue Jul 05 17:59:08 2016 +0300
+++ b/src/lib-fs/fs-sis-queue.c	Tue Jul 05 18:03:36 2016 +0300
@@ -19,18 +19,6 @@
 	struct fs_file *super;
 };
 
-static void fs_sis_queue_copy_error(struct sis_queue_fs *fs)
-{
-	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)
-{
-	struct sis_queue_fs *fs = (struct sis_queue_fs *)file->file.fs;
-
-	fs_sis_queue_copy_error(fs);
-}
-
 static struct fs *fs_sis_queue_alloc(void)
 {
 	struct sis_queue_fs *fs;
@@ -172,11 +160,8 @@
 static ssize_t fs_sis_queue_read(struct fs_file *_file, void *buf, size_t size)
 {
 	struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
-	ssize_t ret;
 
-	if ((ret = fs_read(file->super, buf, size)) < 0)
-		fs_sis_queue_file_copy_error(file);
-	return ret;
+	return fs_read(file->super, buf, size);
 }
 
 static struct istream *
@@ -213,10 +198,8 @@
 
 	if (file->super == NULL)
 		return -1;
-	if (fs_write(file->super, data, size) < 0) {
-		fs_sis_queue_file_copy_error(file);
+	if (fs_write(file->super, data, size) < 0)
 		return -1;
-	}
 	T_BEGIN {
 		fs_sis_queue_add(file);
 	} T_END;
@@ -243,17 +226,13 @@
 	struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
 
 	if (!success) {
-		if (file->super != NULL) {
+		if (file->super != NULL)
 			fs_write_stream_abort(file->super, &_file->output);
-			fs_sis_queue_file_copy_error(file);
-		}
 		return -1;
 	}
 
-	if (fs_write_stream_finish(file->super, &_file->output) < 0) {
-		fs_sis_queue_file_copy_error(file);
+	if (fs_write_stream_finish(file->super, &_file->output) < 0)
 		return -1;
-	}
 	T_BEGIN {
 		fs_sis_queue_add(file);
 	} T_END;
@@ -266,11 +245,7 @@
 {
 	struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
 
-	if (fs_lock(file->super, secs, lock_r) < 0) {
-		fs_sis_queue_file_copy_error(file);
-		return -1;
-	}
-	return 0;
+	return fs_lock(file->super, secs, lock_r);
 }
 
 static void fs_sis_queue_unlock(struct fs_lock *_lock ATTR_UNUSED)
@@ -282,22 +257,14 @@
 {
 	struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
 
-	if (fs_exists(file->super) < 0) {
-		fs_sis_queue_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_exists(file->super);
 }
 
 static int fs_sis_queue_stat(struct fs_file *_file, struct stat *st_r)
 {
 	struct sis_queue_fs_file *file = (struct sis_queue_fs_file *)_file;
 
-	if (fs_stat(file->super, st_r) < 0) {
-		fs_sis_queue_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_stat(file->super, st_r);
 }
 
 static int fs_sis_queue_copy(struct fs_file *_src, struct fs_file *_dest)
@@ -305,11 +272,7 @@
 	struct sis_queue_fs_file *src = (struct sis_queue_fs_file *)_src;
 	struct sis_queue_fs_file *dest = (struct sis_queue_fs_file *)_dest;
 
-	if (fs_copy(src->super, dest->super) < 0) {
-		fs_sis_queue_copy_error(src->fs);
-		return -1;
-	}
-	return 0;
+	return fs_copy(src->super, dest->super);
 }
 
 static int
@@ -318,11 +281,7 @@
 	struct sis_queue_fs_file *src = (struct sis_queue_fs_file *)_src;
 	struct sis_queue_fs_file *dest = (struct sis_queue_fs_file *)_dest;
 
-	if (fs_rename(src->super, dest->super) < 0) {
-		fs_sis_queue_copy_error(src->fs);
-		return -1;
-	}
-	return 0;
+	return fs_rename(src->super, dest->super);
 }
 
 static int fs_sis_queue_delete(struct fs_file *_file)
@@ -332,11 +291,7 @@
 	T_BEGIN {
 		fs_sis_try_unlink_hash_file(_file->fs, file->super);
 	} T_END;
-	if (fs_delete(file->super) < 0) {
-		fs_sis_queue_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_delete(file->super);
 }
 
 static struct fs_iter *
--- a/src/lib-fs/fs-sis.c	Tue Jul 05 17:59:08 2016 +0300
+++ b/src/lib-fs/fs-sis.c	Tue Jul 05 18:03:36 2016 +0300
@@ -28,18 +28,6 @@
 	bool opened;
 };
 
-static void fs_sis_copy_error(struct sis_fs *fs)
-{
-	fs_set_error(&fs->fs, "%s", fs_last_error(fs->fs.parent));
-}
-
-static void fs_sis_file_copy_error(struct sis_fs_file *file)
-{
-	struct sis_fs *fs = (struct sis_fs *)file->file.fs;
-
-	fs_sis_copy_error(fs);
-}
-
 static struct fs *fs_sis_alloc(void)
 {
 	struct sis_fs *fs;
@@ -208,11 +196,8 @@
 static ssize_t fs_sis_read(struct fs_file *_file, void *buf, size_t size)
 {
 	struct sis_fs_file *file = (struct sis_fs_file *)_file;
-	ssize_t ret;
 
-	if ((ret = fs_read(file->super, buf, size)) < 0)
-		fs_sis_file_copy_error(file);
-	return ret;
+	return fs_read(file->super, buf, size);
 }
 
 static struct istream *
@@ -332,10 +317,8 @@
 			return 0;
 	}
 
-	if (fs_write(file->super, data, size) < 0) {
-		fs_sis_file_copy_error(file);
+	if (fs_write(file->super, data, size) < 0)
 		return -1;
-	}
 	T_BEGIN {
 		fs_sis_replace_hash_file(file);
 	} T_END;
@@ -370,10 +353,8 @@
 	struct sis_fs_file *file = (struct sis_fs_file *)_file;
 
 	if (!success) {
-		if (file->super != NULL) {
+		if (file->super != NULL)
 			fs_write_stream_abort(file->super, &file->fs_output);
-			fs_sis_file_copy_error(file);
-		}
 		o_stream_unref(&_file->output);
 		return -1;
 	}
@@ -390,10 +371,8 @@
 	if (_file->output != NULL)
 		o_stream_unref(&_file->output);
 
-	if (fs_write_stream_finish(file->super, &file->fs_output) < 0) {
-		fs_sis_file_copy_error(file);
+	if (fs_write_stream_finish(file->super, &file->fs_output) < 0)
 		return -1;
-	}
 	T_BEGIN {
 		fs_sis_replace_hash_file(file);
 	} T_END;
@@ -405,10 +384,8 @@
 {
 	struct sis_fs_file *file = (struct sis_fs_file *)_file;
 
-	if (fs_lock(file->super, secs, lock_r) < 0) {
-		fs_sis_file_copy_error(file);
+	if (fs_lock(file->super, secs, lock_r) < 0)
 		return -1;
-	}
 	return 0;
 }
 
@@ -421,22 +398,14 @@
 {
 	struct sis_fs_file *file = (struct sis_fs_file *)_file;
 
-	if (fs_exists(file->super) < 0) {
-		fs_sis_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_exists(file->super);
 }
 
 static int fs_sis_stat(struct fs_file *_file, struct stat *st_r)
 {
 	struct sis_fs_file *file = (struct sis_fs_file *)_file;
 
-	if (fs_stat(file->super, st_r) < 0) {
-		fs_sis_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_stat(file->super, st_r);
 }
 
 static int fs_sis_copy(struct fs_file *_src, struct fs_file *_dest)
@@ -444,11 +413,7 @@
 	struct sis_fs_file *src = (struct sis_fs_file *)_src;
 	struct sis_fs_file *dest = (struct sis_fs_file *)_dest;
 
-	if (fs_copy(src->super, dest->super) < 0) {
-		fs_sis_copy_error(src->fs);
-		return -1;
-	}
-	return 0;
+	return fs_copy(src->super, dest->super);
 }
 
 static int fs_sis_rename(struct fs_file *_src, struct fs_file *_dest)
@@ -456,11 +421,7 @@
 	struct sis_fs_file *src = (struct sis_fs_file *)_src;
 	struct sis_fs_file *dest = (struct sis_fs_file *)_dest;
 
-	if (fs_rename(src->super, dest->super) < 0) {
-		fs_sis_copy_error(src->fs);
-		return -1;
-	}
-	return 0;
+	return fs_rename(src->super, dest->super);
 }
 
 static int fs_sis_delete(struct fs_file *_file)
@@ -470,11 +431,7 @@
 	T_BEGIN {
 		fs_sis_try_unlink_hash_file(_file->fs, file->super);
 	} T_END;
-	if (fs_delete(file->super) < 0) {
-		fs_sis_copy_error(file->fs);
-		return -1;
-	}
-	return 0;
+	return fs_delete(file->super);
 }
 
 static struct fs_iter *