/* End-of-IO handler helper function which does not touch the bh after unlocking it. Note: unlock_buffer() sort-of does touch the bh after unlocking it, but a race there is benign: unlock_buffer() only use the bh's address for hashing after unlocking the buffer, so it doesn't actually touch the bh itself.  */
static void __end_buffer_read_notouch(struct buffer_head *bh, int uptodate)
/* End-of-IO handler helper function which does not touch the bh after unlocking it. Note: unlock_buffer() sort-of does touch the bh after unlocking it, but a race there is benign: unlock_buffer() only use the bh's address for hashing after unlocking the buffer, so it doesn't actually touch the bh itself.  */
static void __end_buffer_read_notouch(struct buffer_head *bh, int uptodate)
{
	if (uptodate) {
		set_buffer_uptodate(bh);
	} else {
		clear_buffer_uptodate(bh);
	}
	unlock_buffer(bh);
}