--- async-io-get_bh/fs/buffer.c.~1~ Tue Jul 10 16:51:37 2001 +++ async-io-get_bh/fs/buffer.c Tue Jul 10 17:01:37 2001 @@ -144,7 +144,7 @@ int bdflush_min[N_PARAM] = { 0, 10, 5, 25, 0, 1*HZ, 0, 0, 0}; int bdflush_max[N_PARAM] = {100,50000, 20000, 20000,600*HZ, 6000*HZ, 100, 0, 0}; -static inline void __unlock_buffer(struct buffer_head *bh) +void unlock_buffer(struct buffer_head *bh) { clear_bit(BH_Lock, &bh->b_state); smp_mb__after_clear_bit(); @@ -152,13 +152,6 @@ wake_up(&bh->b_wait); } -void unlock_buffer(struct buffer_head *bh) -{ - get_bh(bh); - __unlock_buffer(bh); - put_bh(bh); -} - /* * Rewrote the wait-routines to use the "new" wait-queue functionality, * and getting rid of the cli-sti pairs. The wait-queue routines still @@ -191,7 +184,7 @@ static void end_buffer_write(struct buffer_head *bh, int uptodate) { mark_buffer_uptodate(bh, uptodate); - __unlock_buffer(bh); + unlock_buffer(bh); put_bh(bh); } @@ -248,7 +241,7 @@ write_locked_buffers(array, count); goto repeat; } - __unlock_buffer(bh); + unlock_buffer(bh); put_bh(bh); } spin_unlock(&lru_list_lock); @@ -832,7 +825,7 @@ */ spin_lock_irqsave(&page_uptodate_lock, flags); mark_buffer_async(bh, 0); - __unlock_buffer(bh); + unlock_buffer(bh); tmp = bh->b_this_page; while (tmp != bh) { if (buffer_async(tmp) && buffer_locked(tmp)) @@ -2015,7 +2008,7 @@ mark_buffer_uptodate(bh, uptodate); kiobuf = bh->b_private; - __unlock_buffer(bh); + unlock_buffer(bh); put_bh(bh); end_kio_request(kiobuf, uptodate); }