diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 0a638e79bf7c05c91a1f20c1a32a2d0bc1d75c46..7666c065b96f2c5a4cd06e4d2e1f3bec6f43ce13 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1231,7 +1231,7 @@ static void ext2_clear_super_error(struct super_block *sb)
 		 * write and hope for the best.
 		 */
 		ext2_msg(sb, KERN_ERR,
-		       "previous I/O error to superblock detected\n");
+		       "previous I/O error to superblock detected");
 		clear_buffer_write_io_error(sbh);
 		set_buffer_uptodate(sbh);
 	}
diff --git a/fs/udf/udftime.c b/fs/udf/udftime.c
index 14626b34d13e42764cc31eb74941eb89a5910e33..0927a4b2ecafba09171d62adf90edd13b791b668 100644
--- a/fs/udf/udftime.c
+++ b/fs/udf/udftime.c
@@ -62,6 +62,11 @@ udf_disk_stamp_to_time(struct timespec *dest, struct timestamp src)
 	dest->tv_sec -= offset * 60;
 	dest->tv_nsec = 1000 * (src.centiseconds * 10000 +
 			src.hundredsOfMicroseconds * 100 + src.microseconds);
+	/*
+	 * Sanitize nanosecond field since reportedly some filesystems are
+	 * recorded with bogus sub-second values.
+	 */
+	dest->tv_nsec %= NSEC_PER_SEC;
 	return dest;
 }