--- a/e2fsck/unix.c	2009-01-20 03:57:24.000000000 +0000
+++ b/e2fsck/unix - Copy.c	2011-03-10 12:28:33.853799789 +0000
@@ -486,9 +486,14 @@
 		return 0;
 
 	if (ctx->progress_fd) {
-		snprintf(buf, sizeof(buf), "%d %lu %lu %s\n",
-			 pass, cur, max, ctx->device_name);
-		write(ctx->progress_fd, buf, strlen(buf));
+		static time_t last_update_time;
+		if((time(NULL) - last_update_time) > 2)
+		{
+			snprintf(buf, sizeof(buf), "e2fsck %d %lu %lu\n",
+				 pass, cur, max, ctx->device_name);
+			write(ctx->progress_fd, buf, strlen(buf));
+			last_update_time = time(NULL);
+		}
 	} else {
 		percent = calc_percent(&e2fsck_tbl, pass, cur, max);
 		e2fsck_simple_progress(ctx, ctx->device_name,
