tag | line | file | source code |
bh | 50 | fs/bitmap.c | struct buffer_head * bh; |
bh | 56 | fs/bitmap.c | bh = get_hash_table(dev,block); |
bh | 57 | fs/bitmap.c | if (bh) { |
bh | 58 | fs/bitmap.c | if (bh->b_count != 1) { |
bh | 60 | fs/bitmap.c | dev,block,bh->b_count); |
bh | 63 | fs/bitmap.c | bh->b_dirt=0; |
bh | 64 | fs/bitmap.c | bh->b_uptodate=0; |
bh | 65 | fs/bitmap.c | brelse(bh); |
bh | 77 | fs/bitmap.c | struct buffer_head * bh; |
bh | 85 | fs/bitmap.c | if (bh=sb->s_zmap[i]) |
bh | 86 | fs/bitmap.c | if ((j=find_first_zero(bh->b_data))<8192) |
bh | 88 | fs/bitmap.c | if (i>=8 || !bh || j>=8192) |
bh | 90 | fs/bitmap.c | if (set_bit(j,bh->b_data)) |
bh | 92 | fs/bitmap.c | bh->b_dirt = 1; |
bh | 96 | fs/bitmap.c | if (!(bh=getblk(dev,j))) |
bh | 98 | fs/bitmap.c | if (bh->b_count != 1) |
bh | 100 | fs/bitmap.c | clear_block(bh->b_data); |
bh | 101 | fs/bitmap.c | bh->b_uptodate = 1; |
bh | 102 | fs/bitmap.c | bh->b_dirt = 1; |
bh | 103 | fs/bitmap.c | brelse(bh); |
bh | 110 | fs/bitmap.c | struct buffer_head * bh; |
bh | 128 | fs/bitmap.c | if (!(bh=sb->s_imap[inode->i_num>>13])) |
bh | 130 | fs/bitmap.c | if (clear_bit(inode->i_num&8191,bh->b_data)) |
bh | 132 | fs/bitmap.c | bh->b_dirt = 1; |
bh | 140 | fs/bitmap.c | struct buffer_head * bh; |
bh | 149 | fs/bitmap.c | if (bh=sb->s_imap[i]) |
bh | 150 | fs/bitmap.c | if ((j=find_first_zero(bh->b_data))<8192) |
bh | 152 | fs/bitmap.c | if (!bh || j >= 8192 || j+i*8192 > sb->s_ninodes) { |
bh | 156 | fs/bitmap.c | if (set_bit(j,bh->b_data)) |
bh | 158 | fs/bitmap.c | bh->b_dirt = 1; |
bh | 20 | fs/block_dev.c | struct buffer_head * bh; |
bh | 28 | fs/block_dev.c | bh = getblk(dev,block); |
bh | 30 | fs/block_dev.c | bh = breada(dev,block,block+1,block+2,-1); |
bh | 32 | fs/block_dev.c | if (!bh) |
bh | 34 | fs/block_dev.c | p = offset + bh->b_data; |
bh | 41 | fs/block_dev.c | bh->b_dirt = 1; |
bh | 42 | fs/block_dev.c | brelse(bh); |
bh | 53 | fs/block_dev.c | struct buffer_head * bh; |
bh | 60 | fs/block_dev.c | if (!(bh = breada(dev,block,block+1,block+2,-1))) |
bh | 63 | fs/block_dev.c | p = offset + bh->b_data; |
bh | 70 | fs/block_dev.c | brelse(bh); |
bh | 36 | fs/buffer.c | static inline void wait_on_buffer(struct buffer_head * bh) |
bh | 39 | fs/buffer.c | while (bh->b_lock) |
bh | 40 | fs/buffer.c | sleep_on(&bh->b_wait); |
bh | 47 | fs/buffer.c | struct buffer_head * bh; |
bh | 50 | fs/buffer.c | bh = start_buffer; |
bh | 51 | fs/buffer.c | for (i=0 ; i<NR_BUFFERS ; i++,bh++) { |
bh | 52 | fs/buffer.c | wait_on_buffer(bh); |
bh | 53 | fs/buffer.c | if (bh->b_dirt) |
bh | 54 | fs/buffer.c | ll_rw_block(WRITE,bh); |
bh | 62 | fs/buffer.c | struct buffer_head * bh; |
bh | 64 | fs/buffer.c | bh = start_buffer; |
bh | 65 | fs/buffer.c | for (i=0 ; i<NR_BUFFERS ; i++,bh++) { |
bh | 66 | fs/buffer.c | if (bh->b_dev != dev) |
bh | 68 | fs/buffer.c | wait_on_buffer(bh); |
bh | 69 | fs/buffer.c | if (bh->b_dev == dev && bh->b_dirt) |
bh | 70 | fs/buffer.c | ll_rw_block(WRITE,bh); |
bh | 73 | fs/buffer.c | bh = start_buffer; |
bh | 74 | fs/buffer.c | for (i=0 ; i<NR_BUFFERS ; i++,bh++) { |
bh | 75 | fs/buffer.c | if (bh->b_dev != dev) |
bh | 77 | fs/buffer.c | wait_on_buffer(bh); |
bh | 78 | fs/buffer.c | if (bh->b_dev == dev && bh->b_dirt) |
bh | 79 | fs/buffer.c | ll_rw_block(WRITE,bh); |
bh | 87 | fs/buffer.c | struct buffer_head * bh; |
bh | 89 | fs/buffer.c | bh = start_buffer; |
bh | 90 | fs/buffer.c | for (i=0 ; i<NR_BUFFERS ; i++,bh++) { |
bh | 91 | fs/buffer.c | if (bh->b_dev != dev) |
bh | 93 | fs/buffer.c | wait_on_buffer(bh); |
bh | 94 | fs/buffer.c | if (bh->b_dev == dev) |
bh | 95 | fs/buffer.c | bh->b_uptodate = bh->b_dirt = 0; |
bh | 131 | fs/buffer.c | static inline void remove_from_queues(struct buffer_head * bh) |
bh | 134 | fs/buffer.c | if (bh->b_next) |
bh | 135 | fs/buffer.c | bh->b_next->b_prev = bh->b_prev; |
bh | 136 | fs/buffer.c | if (bh->b_prev) |
bh | 137 | fs/buffer.c | bh->b_prev->b_next = bh->b_next; |
bh | 138 | fs/buffer.c | if (hash(bh->b_dev,bh->b_blocknr) == bh) |
bh | 139 | fs/buffer.c | hash(bh->b_dev,bh->b_blocknr) = bh->b_next; |
bh | 141 | fs/buffer.c | if (!(bh->b_prev_free) || !(bh->b_next_free)) |
bh | 143 | fs/buffer.c | bh->b_prev_free->b_next_free = bh->b_next_free; |
bh | 144 | fs/buffer.c | bh->b_next_free->b_prev_free = bh->b_prev_free; |
bh | 145 | fs/buffer.c | if (free_list == bh) |
bh | 146 | fs/buffer.c | free_list = bh->b_next_free; |
bh | 149 | fs/buffer.c | static inline void insert_into_queues(struct buffer_head * bh) |
bh | 152 | fs/buffer.c | bh->b_next_free = free_list; |
bh | 153 | fs/buffer.c | bh->b_prev_free = free_list->b_prev_free; |
bh | 154 | fs/buffer.c | free_list->b_prev_free->b_next_free = bh; |
bh | 155 | fs/buffer.c | free_list->b_prev_free = bh; |
bh | 157 | fs/buffer.c | bh->b_prev = NULL; |
bh | 158 | fs/buffer.c | bh->b_next = NULL; |
bh | 159 | fs/buffer.c | if (!bh->b_dev) |
bh | 161 | fs/buffer.c | bh->b_next = hash(bh->b_dev,bh->b_blocknr); |
bh | 162 | fs/buffer.c | hash(bh->b_dev,bh->b_blocknr) = bh; |
bh | 163 | fs/buffer.c | bh->b_next->b_prev = bh; |
bh | 185 | fs/buffer.c | struct buffer_head * bh; |
bh | 188 | fs/buffer.c | if (!(bh=find_buffer(dev,block))) |
bh | 190 | fs/buffer.c | bh->b_count++; |
bh | 191 | fs/buffer.c | wait_on_buffer(bh); |
bh | 192 | fs/buffer.c | if (bh->b_dev == dev && bh->b_blocknr == block) |
bh | 193 | fs/buffer.c | return bh; |
bh | 194 | fs/buffer.c | bh->b_count--; |
bh | 205 | fs/buffer.c | #define BADNESS(bh) (((bh)->b_dirt<<1)+(bh)->b_lock) |
bh | 208 | fs/buffer.c | struct buffer_head * tmp, * bh; |
bh | 211 | fs/buffer.c | if (bh = get_hash_table(dev,block)) |
bh | 212 | fs/buffer.c | return bh; |
bh | 217 | fs/buffer.c | if (!bh || BADNESS(tmp)<BADNESS(bh)) { |
bh | 218 | fs/buffer.c | bh = tmp; |
bh | 224 | fs/buffer.c | if (!bh) { |
bh | 228 | fs/buffer.c | wait_on_buffer(bh); |
bh | 229 | fs/buffer.c | if (bh->b_count) |
bh | 231 | fs/buffer.c | while (bh->b_dirt) { |
bh | 232 | fs/buffer.c | sync_dev(bh->b_dev); |
bh | 233 | fs/buffer.c | wait_on_buffer(bh); |
bh | 234 | fs/buffer.c | if (bh->b_count) |
bh | 243 | fs/buffer.c | bh->b_count=1; |
bh | 244 | fs/buffer.c | bh->b_dirt=0; |
bh | 245 | fs/buffer.c | bh->b_uptodate=0; |
bh | 246 | fs/buffer.c | remove_from_queues(bh); |
bh | 247 | fs/buffer.c | bh->b_dev=dev; |
bh | 248 | fs/buffer.c | bh->b_blocknr=block; |
bh | 249 | fs/buffer.c | insert_into_queues(bh); |
bh | 250 | fs/buffer.c | return bh; |
bh | 269 | fs/buffer.c | struct buffer_head * bh; |
bh | 271 | fs/buffer.c | if (!(bh=getblk(dev,block))) |
bh | 273 | fs/buffer.c | if (bh->b_uptodate) |
bh | 274 | fs/buffer.c | return bh; |
bh | 275 | fs/buffer.c | ll_rw_block(READ,bh); |
bh | 276 | fs/buffer.c | wait_on_buffer(bh); |
bh | 277 | fs/buffer.c | if (bh->b_uptodate) |
bh | 278 | fs/buffer.c | return bh; |
bh | 279 | fs/buffer.c | brelse(bh); |
bh | 298 | fs/buffer.c | struct buffer_head * bh[4]; |
bh | 303 | fs/buffer.c | if (bh[i] = getblk(dev,b[i])) |
bh | 304 | fs/buffer.c | if (!bh[i]->b_uptodate) |
bh | 305 | fs/buffer.c | ll_rw_block(READ,bh[i]); |
bh | 307 | fs/buffer.c | bh[i] = NULL; |
bh | 309 | fs/buffer.c | if (bh[i]) { |
bh | 310 | fs/buffer.c | wait_on_buffer(bh[i]); |
bh | 311 | fs/buffer.c | if (bh[i]->b_uptodate) |
bh | 312 | fs/buffer.c | COPYBLK((unsigned long) bh[i]->b_data,address); |
bh | 313 | fs/buffer.c | brelse(bh[i]); |
bh | 325 | fs/buffer.c | struct buffer_head * bh, *tmp; |
bh | 328 | fs/buffer.c | if (!(bh=getblk(dev,first))) |
bh | 330 | fs/buffer.c | if (!bh->b_uptodate) |
bh | 331 | fs/buffer.c | ll_rw_block(READ,bh); |
bh | 336 | fs/buffer.c | ll_rw_block(READA,bh); |
bh | 341 | fs/buffer.c | wait_on_buffer(bh); |
bh | 342 | fs/buffer.c | if (bh->b_uptodate) |
bh | 343 | fs/buffer.c | return bh; |
bh | 344 | fs/buffer.c | brelse(bh); |
bh | 186 | fs/exec.c | struct buffer_head * bh; |
bh | 221 | fs/exec.c | if (!(bh = bread(inode->i_dev,inode->i_zone[0]))) { |
bh | 225 | fs/exec.c | ex = *((struct exec *) bh->b_data); /* read exec-header */ |
bh | 226 | fs/exec.c | if ((bh->b_data[0] == '#') && (bh->b_data[1] == '!') && (!sh_bang)) { |
bh | 235 | fs/exec.c | strncpy(buf, bh->b_data+2, 1022); |
bh | 236 | fs/exec.c | brelse(bh); |
bh | 298 | fs/exec.c | brelse(bh); |
bh | 20 | fs/file_dev.c | struct buffer_head * bh; |
bh | 26 | fs/file_dev.c | if (!(bh=bread(inode->i_dev,nr))) |
bh | 29 | fs/file_dev.c | bh = NULL; |
bh | 34 | fs/file_dev.c | if (bh) { |
bh | 35 | fs/file_dev.c | char * p = nr + bh->b_data; |
bh | 38 | fs/file_dev.c | brelse(bh); |
bh | 52 | fs/file_dev.c | struct buffer_head * bh; |
bh | 67 | fs/file_dev.c | if (!(bh=bread(inode->i_dev,block))) |
bh | 70 | fs/file_dev.c | p = c + bh->b_data; |
bh | 71 | fs/file_dev.c | bh->b_dirt = 1; |
bh | 82 | fs/file_dev.c | brelse(bh); |
bh | 74 | fs/inode.c | struct buffer_head * bh; |
bh | 98 | fs/inode.c | if (!(bh = bread(inode->i_dev,inode->i_zone[7]))) |
bh | 100 | fs/inode.c | i = ((unsigned short *) (bh->b_data))[block]; |
bh | 103 | fs/inode.c | ((unsigned short *) (bh->b_data))[block]=i; |
bh | 104 | fs/inode.c | bh->b_dirt=1; |
bh | 106 | fs/inode.c | brelse(bh); |
bh | 117 | fs/inode.c | if (!(bh=bread(inode->i_dev,inode->i_zone[8]))) |
bh | 119 | fs/inode.c | i = ((unsigned short *)bh->b_data)[block>>9]; |
bh | 122 | fs/inode.c | ((unsigned short *) (bh->b_data))[block>>9]=i; |
bh | 123 | fs/inode.c | bh->b_dirt=1; |
bh | 125 | fs/inode.c | brelse(bh); |
bh | 128 | fs/inode.c | if (!(bh=bread(inode->i_dev,i))) |
bh | 130 | fs/inode.c | i = ((unsigned short *)bh->b_data)[block&511]; |
bh | 133 | fs/inode.c | ((unsigned short *) (bh->b_data))[block&511]=i; |
bh | 134 | fs/inode.c | bh->b_dirt=1; |
bh | 136 | fs/inode.c | brelse(bh); |
bh | 297 | fs/inode.c | struct buffer_head * bh; |
bh | 305 | fs/inode.c | if (!(bh=bread(inode->i_dev,block))) |
bh | 308 | fs/inode.c | ((struct d_inode *)bh->b_data) |
bh | 310 | fs/inode.c | brelse(bh); |
bh | 317 | fs/inode.c | struct buffer_head * bh; |
bh | 329 | fs/inode.c | if (!(bh=bread(inode->i_dev,block))) |
bh | 331 | fs/inode.c | ((struct d_inode *)bh->b_data) |
bh | 334 | fs/inode.c | bh->b_dirt=1; |
bh | 336 | fs/inode.c | brelse(bh); |
bh | 96 | fs/namei.c | struct buffer_head * bh; |
bh | 129 | fs/namei.c | if (!(bh = bread((*dir)->i_dev,block))) |
bh | 132 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 134 | fs/namei.c | if ((char *)de >= BLOCK_SIZE+bh->b_data) { |
bh | 135 | fs/namei.c | brelse(bh); |
bh | 136 | fs/namei.c | bh = NULL; |
bh | 138 | fs/namei.c | !(bh = bread((*dir)->i_dev,block))) { |
bh | 142 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 146 | fs/namei.c | return bh; |
bh | 151 | fs/namei.c | brelse(bh); |
bh | 169 | fs/namei.c | struct buffer_head * bh; |
bh | 184 | fs/namei.c | if (!(bh = bread(dir->i_dev,block))) |
bh | 187 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 189 | fs/namei.c | if ((char *)de >= BLOCK_SIZE+bh->b_data) { |
bh | 190 | fs/namei.c | brelse(bh); |
bh | 191 | fs/namei.c | bh = NULL; |
bh | 195 | fs/namei.c | if (!(bh = bread(dir->i_dev,block))) { |
bh | 199 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 211 | fs/namei.c | bh->b_dirt = 1; |
bh | 213 | fs/namei.c | return bh; |
bh | 218 | fs/namei.c | brelse(bh); |
bh | 233 | fs/namei.c | struct buffer_head * bh; |
bh | 259 | fs/namei.c | if (!(bh = find_entry(&inode,thisname,namelen,&de))) { |
bh | 265 | fs/namei.c | brelse(bh); |
bh | 308 | fs/namei.c | struct buffer_head * bh; |
bh | 315 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 316 | fs/namei.c | if (!bh) { |
bh | 322 | fs/namei.c | brelse(bh); |
bh | 343 | fs/namei.c | struct buffer_head * bh; |
bh | 360 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 361 | fs/namei.c | if (!bh) { |
bh | 378 | fs/namei.c | bh = add_entry(dir,basename,namelen,&de); |
bh | 379 | fs/namei.c | if (!bh) { |
bh | 386 | fs/namei.c | bh->b_dirt = 1; |
bh | 387 | fs/namei.c | brelse(bh); |
bh | 394 | fs/namei.c | brelse(bh); |
bh | 417 | fs/namei.c | struct buffer_head * bh; |
bh | 432 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 433 | fs/namei.c | if (bh) { |
bh | 434 | fs/namei.c | brelse(bh); |
bh | 448 | fs/namei.c | bh = add_entry(dir,basename,namelen,&de); |
bh | 449 | fs/namei.c | if (!bh) { |
bh | 456 | fs/namei.c | bh->b_dirt = 1; |
bh | 459 | fs/namei.c | brelse(bh); |
bh | 468 | fs/namei.c | struct buffer_head * bh, *dir_block; |
bh | 483 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 484 | fs/namei.c | if (bh) { |
bh | 485 | fs/namei.c | brelse(bh); |
bh | 522 | fs/namei.c | bh = add_entry(dir,basename,namelen,&de); |
bh | 523 | fs/namei.c | if (!bh) { |
bh | 531 | fs/namei.c | bh->b_dirt = 1; |
bh | 536 | fs/namei.c | brelse(bh); |
bh | 547 | fs/namei.c | struct buffer_head * bh; |
bh | 552 | fs/namei.c | !(bh=bread(inode->i_dev,inode->i_zone[0]))) { |
bh | 556 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 565 | fs/namei.c | if ((void *) de >= (void *) (bh->b_data+BLOCK_SIZE)) { |
bh | 566 | fs/namei.c | brelse(bh); |
bh | 572 | fs/namei.c | if (!(bh=bread(inode->i_dev,block))) |
bh | 574 | fs/namei.c | de = (struct dir_entry *) bh->b_data; |
bh | 577 | fs/namei.c | brelse(bh); |
bh | 583 | fs/namei.c | brelse(bh); |
bh | 592 | fs/namei.c | struct buffer_head * bh; |
bh | 607 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 608 | fs/namei.c | if (!bh) { |
bh | 614 | fs/namei.c | brelse(bh); |
bh | 621 | fs/namei.c | brelse(bh); |
bh | 627 | fs/namei.c | brelse(bh); |
bh | 633 | fs/namei.c | brelse(bh); |
bh | 639 | fs/namei.c | brelse(bh); |
bh | 645 | fs/namei.c | brelse(bh); |
bh | 651 | fs/namei.c | bh->b_dirt = 1; |
bh | 652 | fs/namei.c | brelse(bh); |
bh | 668 | fs/namei.c | struct buffer_head * bh; |
bh | 681 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 682 | fs/namei.c | if (!bh) { |
bh | 688 | fs/namei.c | brelse(bh); |
bh | 696 | fs/namei.c | brelse(bh); |
bh | 702 | fs/namei.c | brelse(bh); |
bh | 711 | fs/namei.c | bh->b_dirt = 1; |
bh | 712 | fs/namei.c | brelse(bh); |
bh | 725 | fs/namei.c | struct buffer_head * bh; |
bh | 756 | fs/namei.c | bh = find_entry(&dir,basename,namelen,&de); |
bh | 757 | fs/namei.c | if (bh) { |
bh | 758 | fs/namei.c | brelse(bh); |
bh | 763 | fs/namei.c | bh = add_entry(dir,basename,namelen,&de); |
bh | 764 | fs/namei.c | if (!bh) { |
bh | 770 | fs/namei.c | bh->b_dirt = 1; |
bh | 771 | fs/namei.c | brelse(bh); |
bh | 103 | fs/super.c | struct buffer_head * bh; |
bh | 124 | fs/super.c | if (!(bh = bread(dev,1))) { |
bh | 130 | fs/super.c | *((struct d_super_block *) bh->b_data); |
bh | 131 | fs/super.c | brelse(bh); |
bh | 13 | fs/truncate.c | struct buffer_head * bh; |
bh | 19 | fs/truncate.c | if (bh=bread(dev,block)) { |
bh | 20 | fs/truncate.c | p = (unsigned short *) bh->b_data; |
bh | 24 | fs/truncate.c | brelse(bh); |
bh | 31 | fs/truncate.c | struct buffer_head * bh; |
bh | 37 | fs/truncate.c | if (bh=bread(dev,block)) { |
bh | 38 | fs/truncate.c | p = (unsigned short *) bh->b_data; |
bh | 42 | fs/truncate.c | brelse(bh); |
bh | 187 | include/linux/fs.h | extern void ll_rw_block(int rw, struct buffer_head * bh); |
bh | 31 | kernel/blk_drv/blk.h | struct buffer_head * bh; |
bh | 101 | kernel/blk_drv/blk.h | extern inline void unlock_buffer(struct buffer_head * bh) |
bh | 103 | kernel/blk_drv/blk.h | if (!bh->b_lock) |
bh | 105 | kernel/blk_drv/blk.h | bh->b_lock=0; |
bh | 106 | kernel/blk_drv/blk.h | wake_up(&bh->b_wait); |
bh | 112 | kernel/blk_drv/blk.h | if (CURRENT->bh) { |
bh | 113 | kernel/blk_drv/blk.h | CURRENT->bh->b_uptodate = uptodate; |
bh | 114 | kernel/blk_drv/blk.h | unlock_buffer(CURRENT->bh); |
bh | 119 | kernel/blk_drv/blk.h | CURRENT->bh->b_blocknr); |
bh | 133 | kernel/blk_drv/blk.h | if (CURRENT->bh) { \ |
bh | 134 | kernel/blk_drv/blk.h | if (!CURRENT->bh->b_lock) \ |
bh | 77 | kernel/blk_drv/hd.c | struct buffer_head * bh; |
bh | 137 | kernel/blk_drv/hd.c | if (!(bh = bread(0x300 + drive*5,0))) { |
bh | 142 | kernel/blk_drv/hd.c | if (bh->b_data[510] != 0x55 || (unsigned char) |
bh | 143 | kernel/blk_drv/hd.c | bh->b_data[511] != 0xAA) { |
bh | 147 | kernel/blk_drv/hd.c | p = 0x1BE + (void *)bh->b_data; |
bh | 152 | kernel/blk_drv/hd.c | brelse(bh); |
bh | 42 | kernel/blk_drv/ll_rw_blk.c | static inline void lock_buffer(struct buffer_head * bh) |
bh | 45 | kernel/blk_drv/ll_rw_blk.c | while (bh->b_lock) |
bh | 46 | kernel/blk_drv/ll_rw_blk.c | sleep_on(&bh->b_wait); |
bh | 47 | kernel/blk_drv/ll_rw_blk.c | bh->b_lock=1; |
bh | 51 | kernel/blk_drv/ll_rw_blk.c | static inline void unlock_buffer(struct buffer_head * bh) |
bh | 53 | kernel/blk_drv/ll_rw_blk.c | if (!bh->b_lock) |
bh | 55 | kernel/blk_drv/ll_rw_blk.c | bh->b_lock = 0; |
bh | 56 | kernel/blk_drv/ll_rw_blk.c | wake_up(&bh->b_wait); |
bh | 70 | kernel/blk_drv/ll_rw_blk.c | if (req->bh) |
bh | 71 | kernel/blk_drv/ll_rw_blk.c | req->bh->b_dirt = 0; |
bh | 88 | kernel/blk_drv/ll_rw_blk.c | static void make_request(int major,int rw, struct buffer_head * bh) |
bh | 96 | kernel/blk_drv/ll_rw_blk.c | if (bh->b_lock) |
bh | 105 | kernel/blk_drv/ll_rw_blk.c | lock_buffer(bh); |
bh | 106 | kernel/blk_drv/ll_rw_blk.c | if ((rw == WRITE && !bh->b_dirt) || (rw == READ && bh->b_uptodate)) { |
bh | 107 | kernel/blk_drv/ll_rw_blk.c | unlock_buffer(bh); |
bh | 126 | kernel/blk_drv/ll_rw_blk.c | unlock_buffer(bh); |
bh | 133 | kernel/blk_drv/ll_rw_blk.c | req->dev = bh->b_dev; |
bh | 136 | kernel/blk_drv/ll_rw_blk.c | req->sector = bh->b_blocknr<<1; |
bh | 138 | kernel/blk_drv/ll_rw_blk.c | req->buffer = bh->b_data; |
bh | 140 | kernel/blk_drv/ll_rw_blk.c | req->bh = bh; |
bh | 145 | kernel/blk_drv/ll_rw_blk.c | void ll_rw_block(int rw, struct buffer_head * bh) |
bh | 149 | kernel/blk_drv/ll_rw_blk.c | if ((major=MAJOR(bh->b_dev)) >= NR_BLK_DEV || |
bh | 154 | kernel/blk_drv/ll_rw_blk.c | make_request(major,rw,bh); |
bh | 73 | kernel/blk_drv/ramdisk.c | struct buffer_head *bh; |
bh | 86 | kernel/blk_drv/ramdisk.c | bh = breada(ROOT_DEV,block+1,block,block+2,-1); |
bh | 87 | kernel/blk_drv/ramdisk.c | if (!bh) { |
bh | 91 | kernel/blk_drv/ramdisk.c | *((struct d_super_block *) &s) = *((struct d_super_block *) bh->b_data); |
bh | 92 | kernel/blk_drv/ramdisk.c | brelse(bh); |
bh | 107 | kernel/blk_drv/ramdisk.c | bh = breada(ROOT_DEV, block, block+1, block+2, -1); |
bh | 109 | kernel/blk_drv/ramdisk.c | bh = bread(ROOT_DEV, block); |
bh | 110 | kernel/blk_drv/ramdisk.c | if (!bh) { |
bh | 115 | kernel/blk_drv/ramdisk.c | (void) memcpy(cp, bh->b_data, BLOCK_SIZE); |
bh | 116 | kernel/blk_drv/ramdisk.c | brelse(bh); |