Lines Matching refs:be

52 static bool is_hole(struct pnfs_block_extent *be)  in is_hole()  argument
54 switch (be->be_state) { in is_hole()
58 return be->be_tag ? false : true; in is_hole()
126 struct pnfs_block_extent *be, bio_end_io_t end_io, in do_add_page_to_bio() argument
130 container_of(be->be_device, struct pnfs_block_dev, node); in do_add_page_to_bio()
137 isect += be->be_v_offset; in do_add_page_to_bio()
138 isect -= be->be_f_offset; in do_add_page_to_bio()
174 struct pnfs_block_extent be; in bl_mark_devices_unavailable() local
180 if (!ext_tree_lookup(bl, isect, &be, rw)) in bl_mark_devices_unavailable()
182 extent_length = be.be_length - (isect - be.be_f_offset); in bl_mark_devices_unavailable()
183 nfs4_mark_deviceid_unavailable(be.be_device); in bl_mark_devices_unavailable()
235 struct pnfs_block_extent be; in bl_read_pagelist() local
266 if (!ext_tree_lookup(bl, isect, &be, false)) { in bl_read_pagelist()
270 extent_length = be.be_length - (isect - be.be_f_offset); in bl_read_pagelist()
283 if (is_hole(&be)) { in bl_read_pagelist()
295 isect, pages[i], &map, &be, in bl_read_pagelist()
380 struct pnfs_block_extent be; in bl_write_pagelist() local
413 if (!ext_tree_lookup(bl, isect, &be, true)) { in bl_write_pagelist()
418 extent_length = be.be_length - (isect - be.be_f_offset); in bl_write_pagelist()
424 &be, bl_end_io_write, par, 0, &pg_len); in bl_write_pagelist()
505 static int verify_extent(struct pnfs_block_extent *be, in verify_extent() argument
509 if (be->be_state == PNFS_BLOCK_READWRITE_DATA || in verify_extent()
510 be->be_state == PNFS_BLOCK_INVALID_DATA) in verify_extent()
512 if (be->be_f_offset != lv->start) in verify_extent()
514 lv->start += be->be_length; in verify_extent()
518 if (be->be_state == PNFS_BLOCK_READWRITE_DATA) { in verify_extent()
519 if (be->be_f_offset != lv->start) in verify_extent()
523 lv->start += be->be_length; in verify_extent()
526 } else if (be->be_state == PNFS_BLOCK_INVALID_DATA) { in verify_extent()
527 if (be->be_f_offset != lv->start) in verify_extent()
529 lv->start += be->be_length; in verify_extent()
531 } else if (be->be_state == PNFS_BLOCK_READ_DATA) { in verify_extent()
532 if (be->be_f_offset > lv->start) in verify_extent()
534 if (be->be_f_offset < lv->inval) in verify_extent()
536 if (be->be_f_offset < lv->cowread) in verify_extent()
541 lv->inval = lv->inval + be->be_length; in verify_extent()
542 lv->cowread = be->be_f_offset + be->be_length; in verify_extent()
613 struct pnfs_block_extent *be; in bl_alloc_extent() local
622 be = kzalloc(sizeof(*be), GFP_NOFS); in bl_alloc_extent()
623 if (!be) in bl_alloc_extent()
629 be->be_device = bl_find_get_deviceid(NFS_SERVER(lo->plh_inode), &id, in bl_alloc_extent()
631 if (IS_ERR(be->be_device)) { in bl_alloc_extent()
632 error = PTR_ERR(be->be_device); in bl_alloc_extent()
641 if (decode_sector_number(&p, &be->be_f_offset) < 0) in bl_alloc_extent()
643 if (decode_sector_number(&p, &be->be_length) < 0) in bl_alloc_extent()
645 if (decode_sector_number(&p, &be->be_v_offset) < 0) in bl_alloc_extent()
647 be->be_state = be32_to_cpup(p++); in bl_alloc_extent()
649 error = verify_extent(be, lv); in bl_alloc_extent()
655 list_add_tail(&be->be_list, extents); in bl_alloc_extent()
659 nfs4_put_deviceid_node(be->be_device); in bl_alloc_extent()
661 kfree(be); in bl_alloc_extent()
732 struct pnfs_block_extent *be = in bl_alloc_lseg() local
735 list_del(&be->be_list); in bl_alloc_lseg()
738 status = ext_tree_insert(bl, be); in bl_alloc_lseg()
741 nfs4_put_deviceid_node(be->be_device); in bl_alloc_lseg()
742 kfree(be); in bl_alloc_lseg()