

Ratelimit a couple of potentially-stormy printk's in the writeback code.



---

 fs/buffer.c |   18 ++++++++++++------
 1 files changed, 12 insertions(+), 6 deletions(-)

diff -puN fs/buffer.c~limit-IO-error-printk-storms fs/buffer.c
--- 25/fs/buffer.c~limit-IO-error-printk-storms	2004-01-19 19:51:07.000000000 -0800
+++ 25-akpm/fs/buffer.c	2004-01-19 19:51:56.000000000 -0800
@@ -189,9 +189,12 @@ void end_buffer_write_sync(struct buffer
 	if (uptodate) {
 		set_buffer_uptodate(bh);
 	} else {
-		buffer_io_error(bh);
-		printk(KERN_WARNING "lost page write due to I/O error on %s\n",
-		       bdevname(bh->b_bdev, b));
+		if (printk_ratelimit()) {
+			buffer_io_error(bh);
+			printk(KERN_WARNING "lost page write due to "
+					"I/O error on %s\n",
+				       bdevname(bh->b_bdev, b));
+		}
 		set_buffer_write_io_error(bh);
 		clear_buffer_uptodate(bh);
 	}
@@ -573,9 +576,12 @@ void end_buffer_async_write(struct buffe
 	if (uptodate) {
 		set_buffer_uptodate(bh);
 	} else {
-		buffer_io_error(bh);
-		printk(KERN_WARNING "lost page write due to I/O error on %s\n",
-		       bdevname(bh->b_bdev, b));
+		if (printk_ratelimit()) {
+			buffer_io_error(bh);
+			printk(KERN_WARNING "lost page write due to "
+					"I/O error on %s\n",
+			       bdevname(bh->b_bdev, b));
+		}
 		set_bit(AS_EIO, &page->mapping->flags);
 		clear_buffer_uptodate(bh);
 		SetPageError(page);

_
