Lines Matching refs:bh

52 	struct buffer_head	*bh;
101 bh = affs_bread(sb, key);
102 if (!bh)
104 key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
105 affs_brelse(bh);
119 affs_alloc_extblock(struct inode *inode, struct buffer_head *bh, u32 ext)
125 blocknr = affs_alloc_block(inode, bh->b_blocknr);
143 tmp = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
146 AFFS_TAIL(sb, bh)->extension = cpu_to_be32(blocknr);
147 affs_adjust_checksum(bh, blocknr - tmp);
148 mark_buffer_dirty_inode(bh, inode);
160 struct buffer_head *bh = AFFS_I(inode)->i_ext_bh;
162 get_bh(bh);
165 bh = affs_get_extblock_slow(inode, ext);
167 return bh;
174 struct buffer_head *bh;
181 bh = AFFS_I(inode)->i_ext_bh;
182 ext_key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
186 bh = affs_alloc_extblock(inode, bh, ext);
187 if (IS_ERR(bh))
188 return bh;
208 bh = affs_alloc_extblock(inode, prev_bh, ext);
210 if (IS_ERR(bh))
211 return bh;
259 bh = affs_bread(sb, ext_key);
260 if (!bh)
262 ext_key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
263 affs_brelse(bh);
276 bh = affs_bread(sb, ext_key);
277 if (!bh)
285 AFFS_I(inode)->i_ext_bh = bh;
286 get_bh(bh);
288 return bh;
291 affs_brelse(bh);
467 struct buffer_head *bh, tmp_bh;
473 bh = affs_bread(inode->i_sb, tmp_bh.b_blocknr);
474 if (bh) {
475 bh->b_state |= tmp_bh.b_state;
476 return bh;
486 struct buffer_head *bh, tmp_bh;
492 bh = affs_getzeroblk(inode->i_sb, tmp_bh.b_blocknr);
493 if (bh) {
494 bh->b_state |= tmp_bh.b_state;
495 return bh;
505 struct buffer_head *bh, tmp_bh;
511 bh = affs_getemptyblk(inode->i_sb, tmp_bh.b_blocknr);
512 if (bh) {
513 bh->b_state |= tmp_bh.b_state;
514 return bh;
526 struct buffer_head *bh;
541 bh = affs_bread_ino(inode, bidx, create);
542 if (IS_ERR(bh))
543 return PTR_ERR(bh);
547 memcpy(data + pos, AFFS_DATA(bh) + boff, tmp);
549 affs_brelse(bh);
562 struct buffer_head *bh, *prev_bh;
569 bh = NULL;
574 bh = affs_bread_ino(inode, bidx, 0);
575 if (IS_ERR(bh))
576 return PTR_ERR(bh);
579 memset(AFFS_DATA(bh) + boff, 0, tmp);
580 be32_add_cpu(&AFFS_DATA_HEAD(bh)->size, tmp);
581 affs_fix_checksum(sb, bh);
582 mark_buffer_dirty_inode(bh, inode);
586 bh = affs_bread_ino(inode, bidx - 1, 0);
587 if (IS_ERR(bh))
588 return PTR_ERR(bh);
592 prev_bh = bh;
593 bh = affs_getzeroblk_ino(inode, bidx);
594 if (IS_ERR(bh))
598 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
599 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
600 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
601 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
602 affs_fix_checksum(sb, bh);
603 bh->b_state &= ~(1UL << BH_New);
604 mark_buffer_dirty_inode(bh, inode);
612 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
613 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
620 affs_brelse(bh);
626 return PTR_ERR(bh);
694 struct buffer_head *bh, *prev_bh;
714 bh = NULL;
720 bh = affs_bread_ino(inode, bidx, 0);
721 if (IS_ERR(bh)) {
722 written = PTR_ERR(bh);
727 memcpy(AFFS_DATA(bh) + boff, data + from, tmp);
728 be32_add_cpu(&AFFS_DATA_HEAD(bh)->size, tmp);
729 affs_fix_checksum(sb, bh);
730 mark_buffer_dirty_inode(bh, inode);
735 bh = affs_bread_ino(inode, bidx - 1, 0);
736 if (IS_ERR(bh)) {
737 written = PTR_ERR(bh);
742 prev_bh = bh;
743 bh = affs_getemptyblk_ino(inode, bidx);
744 if (IS_ERR(bh))
746 memcpy(AFFS_DATA(bh), data + from, bsize);
747 if (buffer_new(bh)) {
748 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
749 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
750 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
751 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(bsize);
752 AFFS_DATA_HEAD(bh)->next = 0;
753 bh->b_state &= ~(1UL << BH_New);
761 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
762 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
767 affs_fix_checksum(sb, bh);
768 mark_buffer_dirty_inode(bh, inode);
774 prev_bh = bh;
775 bh = affs_bread_ino(inode, bidx, 1);
776 if (IS_ERR(bh))
780 memcpy(AFFS_DATA(bh), data + from, tmp);
781 if (buffer_new(bh)) {
782 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
783 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
784 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx);
785 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
786 AFFS_DATA_HEAD(bh)->next = 0;
787 bh->b_state &= ~(1UL << BH_New);
795 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
796 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
799 } else if (be32_to_cpu(AFFS_DATA_HEAD(bh)->size) < tmp)
800 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
802 affs_fix_checksum(sb, bh);
803 mark_buffer_dirty_inode(bh, inode);
811 affs_brelse(bh);
829 bh = prev_bh;
831 written = PTR_ERR(bh);
944 struct buffer_head *bh = affs_bread_ino(inode, last_blk, 0);
946 if (IS_ERR(bh)) {
949 ext, PTR_ERR(bh));
952 tmp = be32_to_cpu(AFFS_DATA_HEAD(bh)->next);
953 AFFS_DATA_HEAD(bh)->next = 0;
954 affs_adjust_checksum(bh, -tmp);
955 affs_brelse(bh);