Lines Matching refs:map

372 				struct ext4_map_blocks *map)  in __check_block_validity()  argument
374 if (!ext4_data_block_valid(EXT4_SB(inode->i_sb), map->m_pblk, in __check_block_validity()
375 map->m_len)) { in __check_block_validity()
376 ext4_error_inode(inode, func, line, map->m_pblk, in __check_block_validity()
378 "(length %d)", (unsigned long) map->m_lblk, in __check_block_validity()
379 map->m_len); in __check_block_validity()
385 #define check_block_validity(inode, map) \ argument
386 __check_block_validity((inode), __func__, __LINE__, (map))
392 struct ext4_map_blocks *map, in ext4_map_blocks_es_recheck() argument
397 map->m_flags = 0; in ext4_map_blocks_es_recheck()
408 retval = ext4_ext_map_blocks(handle, inode, map, flags & in ext4_map_blocks_es_recheck()
411 retval = ext4_ind_map_blocks(handle, inode, map, flags & in ext4_map_blocks_es_recheck()
421 if (es_map->m_lblk != map->m_lblk || in ext4_map_blocks_es_recheck()
422 es_map->m_flags != map->m_flags || in ext4_map_blocks_es_recheck()
423 es_map->m_pblk != map->m_pblk) { in ext4_map_blocks_es_recheck()
428 es_map->m_pblk, es_map->m_flags, map->m_lblk, in ext4_map_blocks_es_recheck()
429 map->m_len, map->m_pblk, map->m_flags, in ext4_map_blocks_es_recheck()
458 struct ext4_map_blocks *map, int flags) in ext4_map_blocks() argument
466 memcpy(&orig_map, map, sizeof(*map)); in ext4_map_blocks()
469 map->m_flags = 0; in ext4_map_blocks()
471 "logical block %lu\n", inode->i_ino, flags, map->m_len, in ext4_map_blocks()
472 (unsigned long) map->m_lblk); in ext4_map_blocks()
477 if (unlikely(map->m_len > INT_MAX)) in ext4_map_blocks()
478 map->m_len = INT_MAX; in ext4_map_blocks()
481 if (unlikely(map->m_lblk >= EXT_MAX_BLOCKS)) in ext4_map_blocks()
485 if (ext4_es_lookup_extent(inode, map->m_lblk, &es)) { in ext4_map_blocks()
487 map->m_pblk = ext4_es_pblock(&es) + in ext4_map_blocks()
488 map->m_lblk - es.es_lblk; in ext4_map_blocks()
489 map->m_flags |= ext4_es_is_written(&es) ? in ext4_map_blocks()
491 retval = es.es_len - (map->m_lblk - es.es_lblk); in ext4_map_blocks()
492 if (retval > map->m_len) in ext4_map_blocks()
493 retval = map->m_len; in ext4_map_blocks()
494 map->m_len = retval; in ext4_map_blocks()
501 ext4_map_blocks_es_recheck(handle, inode, map, in ext4_map_blocks()
514 retval = ext4_ext_map_blocks(handle, inode, map, flags & in ext4_map_blocks()
517 retval = ext4_ind_map_blocks(handle, inode, map, flags & in ext4_map_blocks()
523 if (unlikely(retval != map->m_len)) { in ext4_map_blocks()
527 inode->i_ino, retval, map->m_len); in ext4_map_blocks()
531 status = map->m_flags & EXT4_MAP_UNWRITTEN ? in ext4_map_blocks()
535 ext4_find_delalloc_range(inode, map->m_lblk, in ext4_map_blocks()
536 map->m_lblk + map->m_len - 1)) in ext4_map_blocks()
538 ret = ext4_es_insert_extent(inode, map->m_lblk, in ext4_map_blocks()
539 map->m_len, map->m_pblk, status); in ext4_map_blocks()
547 if (retval > 0 && map->m_flags & EXT4_MAP_MAPPED) { in ext4_map_blocks()
548 ret = check_block_validity(inode, map); in ext4_map_blocks()
564 if (retval > 0 && map->m_flags & EXT4_MAP_MAPPED) in ext4_map_blocks()
577 map->m_flags &= ~EXT4_MAP_FLAGS; in ext4_map_blocks()
592 retval = ext4_ext_map_blocks(handle, inode, map, flags); in ext4_map_blocks()
594 retval = ext4_ind_map_blocks(handle, inode, map, flags); in ext4_map_blocks()
596 if (retval > 0 && map->m_flags & EXT4_MAP_NEW) { in ext4_map_blocks()
619 if (unlikely(retval != map->m_len)) { in ext4_map_blocks()
623 inode->i_ino, retval, map->m_len); in ext4_map_blocks()
632 ext4_es_lookup_extent(inode, map->m_lblk, &es)) { in ext4_map_blocks()
636 status = map->m_flags & EXT4_MAP_UNWRITTEN ? in ext4_map_blocks()
640 ext4_find_delalloc_range(inode, map->m_lblk, in ext4_map_blocks()
641 map->m_lblk + map->m_len - 1)) in ext4_map_blocks()
643 ret = ext4_es_insert_extent(inode, map->m_lblk, map->m_len, in ext4_map_blocks()
644 map->m_pblk, status); in ext4_map_blocks()
651 if (retval > 0 && map->m_flags & EXT4_MAP_MAPPED) { in ext4_map_blocks()
652 ret = check_block_validity(inode, map); in ext4_map_blocks()
694 struct ext4_map_blocks map; in _ext4_get_block() local
701 map.m_lblk = iblock; in _ext4_get_block()
702 map.m_len = bh->b_size >> inode->i_blkbits; in _ext4_get_block()
706 if (map.m_len > DIO_MAX_BLOCKS) in _ext4_get_block()
707 map.m_len = DIO_MAX_BLOCKS; in _ext4_get_block()
708 dio_credits = ext4_chunk_trans_blocks(inode, map.m_len); in _ext4_get_block()
718 ret = ext4_map_blocks(handle, inode, &map, flags); in _ext4_get_block()
722 map_bh(bh, inode->i_sb, map.m_pblk); in _ext4_get_block()
723 ext4_update_bh_state(bh, map.m_flags); in _ext4_get_block()
736 bh->b_size = inode->i_sb->s_blocksize * map.m_len; in _ext4_get_block()
757 struct ext4_map_blocks map; in ext4_getblk() local
763 map.m_lblk = block; in ext4_getblk()
764 map.m_len = 1; in ext4_getblk()
765 err = ext4_map_blocks(handle, inode, &map, in ext4_getblk()
773 bh = sb_getblk(inode->i_sb, map.m_pblk); in ext4_getblk()
776 if (map.m_flags & EXT4_MAP_NEW) { in ext4_getblk()
1436 struct ext4_map_blocks map; member
1518 struct ext4_map_blocks *map, in ext4_da_map_blocks() argument
1527 memcpy(&orig_map, map, sizeof(*map)); in ext4_da_map_blocks()
1533 map->m_flags = 0; in ext4_da_map_blocks()
1535 "logical block %lu\n", inode->i_ino, map->m_len, in ext4_da_map_blocks()
1536 (unsigned long) map->m_lblk); in ext4_da_map_blocks()
1557 map->m_pblk = ext4_es_pblock(&es) + iblock - es.es_lblk; in ext4_da_map_blocks()
1559 if (retval > map->m_len) in ext4_da_map_blocks()
1560 retval = map->m_len; in ext4_da_map_blocks()
1561 map->m_len = retval; in ext4_da_map_blocks()
1563 map->m_flags |= EXT4_MAP_MAPPED; in ext4_da_map_blocks()
1565 map->m_flags |= EXT4_MAP_UNWRITTEN; in ext4_da_map_blocks()
1570 ext4_map_blocks_es_recheck(NULL, inode, map, &orig_map, 0); in ext4_da_map_blocks()
1583 retval = ext4_ext_map_blocks(NULL, inode, map, 0); in ext4_da_map_blocks()
1585 retval = ext4_ind_map_blocks(NULL, inode, map, 0); in ext4_da_map_blocks()
1600 !ext4_find_delalloc_cluster(inode, map->m_lblk)) { in ext4_da_map_blocks()
1609 ret = ext4_es_insert_extent(inode, map->m_lblk, map->m_len, in ext4_da_map_blocks()
1623 if (unlikely(retval != map->m_len)) { in ext4_da_map_blocks()
1627 inode->i_ino, retval, map->m_len); in ext4_da_map_blocks()
1631 status = map->m_flags & EXT4_MAP_UNWRITTEN ? in ext4_da_map_blocks()
1633 ret = ext4_es_insert_extent(inode, map->m_lblk, map->m_len, in ext4_da_map_blocks()
1634 map->m_pblk, status); in ext4_da_map_blocks()
1660 struct ext4_map_blocks map; in ext4_da_get_block_prep() local
1666 map.m_lblk = iblock; in ext4_da_get_block_prep()
1667 map.m_len = 1; in ext4_da_get_block_prep()
1674 ret = ext4_da_map_blocks(inode, iblock, &map, bh); in ext4_da_get_block_prep()
1678 map_bh(bh, inode->i_sb, map.m_pblk); in ext4_da_get_block_prep()
1679 ext4_update_bh_state(bh, map.m_flags); in ext4_da_get_block_prep()
1942 struct ext4_map_blocks *map = &mpd->map; in mpage_add_bh_to_extent() local
1948 if (map->m_len == 0) in mpage_add_bh_to_extent()
1954 if (map->m_len == 0) { in mpage_add_bh_to_extent()
1955 map->m_lblk = lblk; in mpage_add_bh_to_extent()
1956 map->m_len = 1; in mpage_add_bh_to_extent()
1957 map->m_flags = bh->b_state & BH_FLAGS; in mpage_add_bh_to_extent()
1962 if (map->m_len >= MAX_WRITEPAGES_EXTENT_LEN) in mpage_add_bh_to_extent()
1966 if (lblk == map->m_lblk + map->m_len && in mpage_add_bh_to_extent()
1967 (bh->b_state & BH_FLAGS) == map->m_flags) { in mpage_add_bh_to_extent()
1968 map->m_len++; in mpage_add_bh_to_extent()
2005 if (mpd->map.m_len) in mpage_process_page_bufs()
2012 if (mpd->map.m_len == 0) { in mpage_process_page_bufs()
2046 start = mpd->map.m_lblk >> bpp_bits; in mpage_map_and_submit_buffers()
2047 end = (mpd->map.m_lblk + mpd->map.m_len - 1) >> bpp_bits; in mpage_map_and_submit_buffers()
2049 pblock = mpd->map.m_pblk; in mpage_map_and_submit_buffers()
2066 if (lblk < mpd->map.m_lblk) in mpage_map_and_submit_buffers()
2068 if (lblk >= mpd->map.m_lblk + mpd->map.m_len) { in mpage_map_and_submit_buffers()
2073 mpd->map.m_len = 0; in mpage_map_and_submit_buffers()
2074 mpd->map.m_flags = 0; in mpage_map_and_submit_buffers()
2113 mpd->map.m_len = 0; in mpage_map_and_submit_buffers()
2114 mpd->map.m_flags = 0; in mpage_map_and_submit_buffers()
2121 struct ext4_map_blocks *map = &mpd->map; in mpage_map_one_extent() local
2125 trace_ext4_da_write_pages_extent(inode, map); in mpage_map_one_extent()
2146 if (map->m_flags & (1 << BH_Delay)) in mpage_map_one_extent()
2149 err = ext4_map_blocks(handle, inode, map, get_blocks_flags); in mpage_map_one_extent()
2152 if (dioread_nolock && (map->m_flags & EXT4_MAP_UNWRITTEN)) { in mpage_map_one_extent()
2161 BUG_ON(map->m_len == 0); in mpage_map_one_extent()
2162 if (map->m_flags & EXT4_MAP_NEW) { in mpage_map_one_extent()
2166 for (i = 0; i < map->m_len; i++) in mpage_map_one_extent()
2167 unmap_underlying_metadata(bdev, map->m_pblk + i); in mpage_map_one_extent()
2197 struct ext4_map_blocks *map = &mpd->map; in mpage_map_and_submit_extent() local
2203 ((loff_t)map->m_lblk) << inode->i_blkbits; in mpage_map_and_submit_extent()
2227 (unsigned long long)map->m_lblk, in mpage_map_and_submit_extent()
2228 (unsigned)map->m_len, -err); in mpage_map_and_submit_extent()
2246 } while (map->m_len); in mpage_map_and_submit_extent()
2329 mpd->map.m_len = 0; in mpage_prepare_extent_to_map()
2362 if (mpd->map.m_len > 0 && mpd->next_page != page->index) in mpage_prepare_extent_to_map()
2384 if (mpd->map.m_len == 0) in mpage_prepare_extent_to_map()
2547 if (mpd.map.m_len) in ext4_writepages()