Messages in this thread |  | | | Date | Mon, 9 Oct 2006 11:20:11 -0700 | | From | Andrew Morton <> | | Subject | Re: [PATCH 0/3] Fix IO error reporting on fsync() |
| |
On Mon, 9 Oct 2006 13:40:41 +0200 Jan Kara <jack@suse.cz> wrote:
> > What about putting an address_space* into the buffer_head? Transfer the > > EIO state into the address_space within, say, __remove_assoc_queue()? > Yes, that's of course possible. But it enlarges each buffer head by 4 > bytes (or 8 on 64-bit arch).
I suspect we could get that back by removing buffer_head.b_bdev. That's not a trivial thing to do, but should be feasible.
We can't just do bh->b_page->mapping->host->i_sb->s_bdev because of races with trunate, plus the general horror of it all. But I expect that all callers of submit_bh() have the blockdev* easily available by other means, so adding a `struct block_device*' argument to submit_bh() would get us there.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |