All of lore.kernel.org
 help / color / mirror / Atom feed
* [patch 6/15] larger b_size, and misc fixlets
@ 2002-05-19 19:39 Andrew Morton
  2002-05-19 22:15 ` Andreas Dilger
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2002-05-19 19:39 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: lkml



Miscellany.

- make the printk in buffer_io_error() sector_t-aware.

- Some buffer.c cleanups from AntonA: remove a couple of !uptodate
  checks, and set a new buffer's b_blocknr to -1 in a more sensible
  place.

- Make buffer_head.b_size a 32-bit quantity.  Needed for 64k pagesize
  on ia64.  Does not increase sizeof(struct buffer_head).

=====================================

--- 2.5.16/fs/buffer.c~sector_t-printing	Sun May 19 11:49:47 2002
+++ 2.5.16-akpm/fs/buffer.c	Sun May 19 12:02:57 2002
@@ -179,8 +179,8 @@ __clear_page_buffers(struct page *page)
 
 static void buffer_io_error(struct buffer_head *bh)
 {
-	printk(KERN_ERR "Buffer I/O error on device %s, logical block %ld\n",
-			bdevname(bh->b_bdev), bh->b_blocknr);
+	printk(KERN_ERR "Buffer I/O error on device %s, logical block %Ld\n",
+			bdevname(bh->b_bdev), (u64)bh->b_blocknr);
 }
 
 /*
@@ -189,12 +189,12 @@ static void buffer_io_error(struct buffe
  */
 void end_buffer_io_sync(struct buffer_head *bh, int uptodate)
 {
-	if (!uptodate)
-		buffer_io_error(bh);
-	if (uptodate)
+	if (uptodate) {
 		set_buffer_uptodate(bh);
-	else
+	} else {
+		buffer_io_error(bh);
 		clear_buffer_uptodate(bh);
+	}
 	unlock_buffer(bh);
 	put_bh(bh);
 }
@@ -519,14 +519,12 @@ static void end_buffer_async_read(struct
 
 	BUG_ON(!buffer_async_read(bh));
 
-	if (!uptodate)
-		buffer_io_error(bh);
-
 	page = bh->b_page;
 	if (uptodate) {
 		set_buffer_uptodate(bh);
 	} else {
 		clear_buffer_uptodate(bh);
+		buffer_io_error(bh);
 		SetPageError(page);
 	}
 
@@ -579,13 +577,11 @@ static void end_buffer_async_write(struc
 
 	BUG_ON(!buffer_async_write(bh));
 
-	if (!uptodate)
-		buffer_io_error(bh);
-
 	page = bh->b_page;
 	if (uptodate) {
 		set_buffer_uptodate(bh);
 	} else {
+		buffer_io_error(bh);
 		clear_buffer_uptodate(bh);
 		SetPageError(page);
 	}
@@ -907,6 +903,7 @@ try_again:
 
 		bh->b_bdev = NULL;
 		bh->b_this_page = head;
+		bh->b_blocknr = -1;
 		head = bh;
 
 		bh->b_state = 0;
@@ -2442,7 +2439,6 @@ static void init_buffer_head(void *data,
 		struct buffer_head * bh = (struct buffer_head *)data;
 
 		memset(bh, 0, sizeof(*bh));
-		bh->b_blocknr = -1;
 		INIT_LIST_HEAD(&bh->b_assoc_buffers);
 	}
 }
--- 2.5.16/include/linux/buffer_head.h~sector_t-printing	Sun May 19 11:49:47 2002
+++ 2.5.16-akpm/include/linux/buffer_head.h	Sun May 19 12:02:57 2002
@@ -44,7 +44,7 @@ struct buffer_head {
 	struct page *b_page;		/* the page this bh is mapped to */
 
 	sector_t b_blocknr;		/* block number */
-	unsigned short b_size;		/* block size */
+	u32 b_size;			/* block size */
 	char *b_data;			/* pointer to data block */
 
 	struct block_device *b_bdev;


-

^ permalink raw reply	[flat|nested] 5+ messages in thread
[parent not found: <368842013@toto.iv>]

end of thread, other threads:[~2002-05-20  2:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-19 19:39 [patch 6/15] larger b_size, and misc fixlets Andrew Morton
2002-05-19 22:15 ` Andreas Dilger
2002-05-19 22:53   ` Andrew Morton
2002-05-19 22:59     ` Anton Altaparmakov
     [not found] <368842013@toto.iv>
2002-05-20  2:09 ` Peter Chubb

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.