dovecot-2.2: fs-metawrap: Error handling fixes

dovecot at dovecot.org dovecot at dovecot.org
Mon Feb 4 20:18:39 EET 2013


details:   http://hg.dovecot.org/dovecot-2.2/rev/159c18c2e502
changeset: 15727:159c18c2e502
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Feb 04 20:15:32 2013 +0200
description:
fs-metawrap: Error handling fixes

diffstat:

 src/lib-fs/fs-metawrap.c |  15 ++++++++++++---
 1 files changed, 12 insertions(+), 3 deletions(-)

diffs (32 lines):

diff -r e7d682358619 -r 159c18c2e502 src/lib-fs/fs-metawrap.c
--- a/src/lib-fs/fs-metawrap.c	Mon Feb 04 20:14:16 2013 +0200
+++ b/src/lib-fs/fs-metawrap.c	Mon Feb 04 20:15:32 2013 +0200
@@ -145,7 +145,11 @@
 {
 	struct metawrap_fs *fs = (struct metawrap_fs *)_fs;
 
-	return fs_wait_async(fs->super);
+	if (fs_wait_async(fs->super) < 0) {
+		fs_metawrap_copy_error(fs);
+		return -1;
+	}
+	return 0;
 }
 
 static void
@@ -167,8 +171,13 @@
 	struct metawrap_fs_file *file = (struct metawrap_fs_file *)_file;
 	char c;
 
-	if (!file->fs->wrap_metadata)
-		return fs_get_metadata(file->super, metadata_r);
+	if (!file->fs->wrap_metadata) {
+		if (fs_get_metadata(file->super, metadata_r) < 0) {
+			fs_metawrap_file_copy_error(file);
+			return -1;
+		}
+		return 0;
+	}
 
 	if (fs_read(_file, &c, 1) < 0)
 		return -1;


More information about the dovecot-cvs mailing list