Lines Matching defs:bh

53 	struct buffer_head	*bh;
102 bh = affs_bread(sb, key);
103 if (!bh)
105 key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
106 affs_brelse(bh);
120 affs_alloc_extblock(struct inode *inode, struct buffer_head *bh, u32 ext)
126 blocknr = affs_alloc_block(inode, bh->b_blocknr);
144 tmp = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
147 AFFS_TAIL(sb, bh)->extension = cpu_to_be32(blocknr);
148 affs_adjust_checksum(bh, blocknr - tmp);
149 mark_buffer_dirty_inode(bh, inode);
161 struct buffer_head *bh = AFFS_I(inode)->i_ext_bh;
163 get_bh(bh);
166 bh = affs_get_extblock_slow(inode, ext);
168 return bh;
175 struct buffer_head *bh;
182 bh = AFFS_I(inode)->i_ext_bh;
183 ext_key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
187 bh = affs_alloc_extblock(inode, bh, ext);
188 if (IS_ERR(bh))
189 return bh;
209 bh = affs_alloc_extblock(inode, prev_bh, ext);
211 if (IS_ERR(bh))
212 return bh;
260 bh = affs_bread(sb, ext_key);
261 if (!bh)
263 ext_key = be32_to_cpu(AFFS_TAIL(sb, bh)->extension);
264 affs_brelse(bh);
277 bh = affs_bread(sb, ext_key);
278 if (!bh)
286 AFFS_I(inode)->i_ext_bh = bh;
287 get_bh(bh);
289 return bh;
292 affs_brelse(bh);
473 struct buffer_head *bh, tmp_bh;
479 bh = affs_bread(inode->i_sb, tmp_bh.b_blocknr);
480 if (bh) {
481 bh->b_state |= tmp_bh.b_state;
482 return bh;
492 struct buffer_head *bh, tmp_bh;
498 bh = affs_getzeroblk(inode->i_sb, tmp_bh.b_blocknr);
499 if (bh) {
500 bh->b_state |= tmp_bh.b_state;
501 return bh;
511 struct buffer_head *bh, tmp_bh;
517 bh = affs_getemptyblk(inode->i_sb, tmp_bh.b_blocknr);
518 if (bh) {
519 bh->b_state |= tmp_bh.b_state;
520 return bh;
531 struct buffer_head *bh;
545 bh = affs_bread_ino(inode, bidx, create);
546 if (IS_ERR(bh))
547 return PTR_ERR(bh);
550 memcpy_to_folio(folio, pos, AFFS_DATA(bh) + boff, tmp);
551 affs_brelse(bh);
563 struct buffer_head *bh, *prev_bh;
570 bh = NULL;
575 bh = affs_bread_ino(inode, bidx, 0);
576 if (IS_ERR(bh))
577 return PTR_ERR(bh);
580 memset(AFFS_DATA(bh) + boff, 0, tmp);
581 be32_add_cpu(&AFFS_DATA_HEAD(bh)->size, tmp);
582 affs_fix_checksum(sb, bh);
583 mark_buffer_dirty_inode(bh, inode);
587 bh = affs_bread_ino(inode, bidx - 1, 0);
588 if (IS_ERR(bh))
589 return PTR_ERR(bh);
593 prev_bh = bh;
594 bh = affs_getzeroblk_ino(inode, bidx);
595 if (IS_ERR(bh))
599 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
600 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
601 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
602 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
603 affs_fix_checksum(sb, bh);
604 bh->b_state &= ~(1UL << BH_New);
605 mark_buffer_dirty_inode(bh, inode);
613 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
614 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
621 affs_brelse(bh);
627 return PTR_ERR(bh);
697 struct buffer_head *bh, *prev_bh;
717 bh = NULL;
723 bh = affs_bread_ino(inode, bidx, 0);
724 if (IS_ERR(bh)) {
725 written = PTR_ERR(bh);
730 memcpy(AFFS_DATA(bh) + boff, data + from, tmp);
731 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(
732 max(boff + tmp, be32_to_cpu(AFFS_DATA_HEAD(bh)->size)));
733 affs_fix_checksum(sb, bh);
734 mark_buffer_dirty_inode(bh, inode);
739 bh = affs_bread_ino(inode, bidx - 1, 0);
740 if (IS_ERR(bh)) {
741 written = PTR_ERR(bh);
746 prev_bh = bh;
747 bh = affs_getemptyblk_ino(inode, bidx);
748 if (IS_ERR(bh))
750 memcpy(AFFS_DATA(bh), data + from, bsize);
751 if (buffer_new(bh)) {
752 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
753 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
754 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
755 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(bsize);
756 AFFS_DATA_HEAD(bh)->next = 0;
757 bh->b_state &= ~(1UL << BH_New);
765 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
766 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
771 affs_fix_checksum(sb, bh);
772 mark_buffer_dirty_inode(bh, inode);
778 prev_bh = bh;
779 bh = affs_bread_ino(inode, bidx, 1);
780 if (IS_ERR(bh))
784 memcpy(AFFS_DATA(bh), data + from, tmp);
785 if (buffer_new(bh)) {
786 AFFS_DATA_HEAD(bh)->ptype = cpu_to_be32(T_DATA);
787 AFFS_DATA_HEAD(bh)->key = cpu_to_be32(inode->i_ino);
788 AFFS_DATA_HEAD(bh)->sequence = cpu_to_be32(bidx + 1);
789 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
790 AFFS_DATA_HEAD(bh)->next = 0;
791 bh->b_state &= ~(1UL << BH_New);
799 AFFS_DATA_HEAD(prev_bh)->next = cpu_to_be32(bh->b_blocknr);
800 affs_adjust_checksum(prev_bh, bh->b_blocknr - tmp_next);
803 } else if (be32_to_cpu(AFFS_DATA_HEAD(bh)->size) < tmp)
804 AFFS_DATA_HEAD(bh)->size = cpu_to_be32(tmp);
806 affs_fix_checksum(sb, bh);
807 mark_buffer_dirty_inode(bh, inode);
815 affs_brelse(bh);
833 bh = prev_bh;
835 written = PTR_ERR(bh);
951 struct buffer_head *bh = affs_bread_ino(inode, last_blk, 0);
953 if (IS_ERR(bh)) {
956 ext, PTR_ERR(bh));
959 tmp = be32_to_cpu(AFFS_DATA_HEAD(bh)->next);
960 AFFS_DATA_HEAD(bh)->next = 0;
961 affs_adjust_checksum(bh, -tmp);
962 affs_brelse(bh);