patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / include / linux / buffer_head.h
index 99cb413..6d70bd5 100644 (file)
@@ -170,6 +170,7 @@ struct buffer_head *__bread(struct block_device *, sector_t block, int size);
 struct buffer_head *alloc_buffer_head(int gfp_flags);
 void free_buffer_head(struct buffer_head * bh);
 void FASTCALL(unlock_buffer(struct buffer_head *bh));
+void FASTCALL(__lock_buffer(struct buffer_head *bh));
 void ll_rw_block(int, int, struct buffer_head * bh[]);
 void sync_dirty_buffer(struct buffer_head *bh);
 void submit_bh(int, struct buffer_head *);
@@ -279,8 +280,8 @@ static inline void wait_on_buffer(struct buffer_head *bh)
 
 static inline void lock_buffer(struct buffer_head *bh)
 {
-       while (test_set_buffer_locked(bh))
-               __wait_on_buffer(bh);
+       if (test_set_buffer_locked(bh))
+               __lock_buffer(bh);
 }
 
 #endif /* _LINUX_BUFFER_HEAD_H */