Lines Matching refs:erp

892 		xfs_ext_irec_t	*erp;		/* irec pointer */  in xfs_iext_get_ext()  local
896 erp = xfs_iext_idx_to_irec(ifp, &page_idx, &erp_idx, 0); in xfs_iext_get_ext()
897 return &erp->er_extbuf[page_idx]; in xfs_iext_get_ext()
986 xfs_ext_irec_t *erp; in xfs_iext_add() local
992 erp = xfs_iext_idx_to_irec(ifp, &page_idx, &erp_idx, 1); in xfs_iext_add()
996 erp = ifp->if_u1.if_ext_irec; in xfs_iext_add()
999 if (erp && erp->er_extcount + ext_diff <= XFS_LINEAR_EXTS) { in xfs_iext_add()
1000 if (page_idx < erp->er_extcount) { in xfs_iext_add()
1001 memmove(&erp->er_extbuf[page_idx + ext_diff], in xfs_iext_add()
1002 &erp->er_extbuf[page_idx], in xfs_iext_add()
1003 (erp->er_extcount - page_idx) * in xfs_iext_add()
1005 memset(&erp->er_extbuf[page_idx], 0, byte_diff); in xfs_iext_add()
1007 erp->er_extcount += ext_diff; in xfs_iext_add()
1011 else if (erp) { in xfs_iext_add()
1025 erp = xfs_iext_irec_new(ifp, erp_idx); in xfs_iext_add()
1026 erp->er_extcount = min(count, XFS_LINEAR_EXTS); in xfs_iext_add()
1027 count -= erp->er_extcount; in xfs_iext_add()
1060 xfs_ext_irec_t *erp; /* pointer to irec entry */ in xfs_iext_add_indirect_multi() local
1068 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_add_indirect_multi()
1069 nex2 = erp->er_extcount - idx; in xfs_iext_add_indirect_multi()
1078 memmove(nex2_ep, &erp->er_extbuf[idx], byte_diff); in xfs_iext_add_indirect_multi()
1079 erp->er_extcount -= nex2; in xfs_iext_add_indirect_multi()
1081 memset(&erp->er_extbuf[idx], 0, byte_diff); in xfs_iext_add_indirect_multi()
1091 ext_diff = MIN(ext_cnt, (int)XFS_LINEAR_EXTS - erp->er_extcount); in xfs_iext_add_indirect_multi()
1093 erp->er_extcount += ext_diff; in xfs_iext_add_indirect_multi()
1099 erp = xfs_iext_irec_new(ifp, erp_idx); in xfs_iext_add_indirect_multi()
1101 erp->er_extcount = ext_diff; in xfs_iext_add_indirect_multi()
1112 ext_avail = XFS_LINEAR_EXTS - erp->er_extcount; in xfs_iext_add_indirect_multi()
1119 i = erp->er_extcount; in xfs_iext_add_indirect_multi()
1129 erp++; in xfs_iext_add_indirect_multi()
1131 memmove(&erp->er_extbuf[nex2], erp->er_extbuf, in xfs_iext_add_indirect_multi()
1132 erp->er_extcount * sizeof(xfs_bmbt_rec_t)); in xfs_iext_add_indirect_multi()
1140 erp = xfs_iext_irec_new(ifp, erp_idx); in xfs_iext_add_indirect_multi()
1142 memmove(&erp->er_extbuf[i], nex2_ep, byte_diff); in xfs_iext_add_indirect_multi()
1144 erp->er_extcount += nex2; in xfs_iext_add_indirect_multi()
1288 xfs_ext_irec_t *erp; /* indirection array pointer */ in xfs_iext_remove_indirect() local
1297 erp = xfs_iext_idx_to_irec(ifp, &page_idx, &erp_idx, 0); in xfs_iext_remove_indirect()
1298 ASSERT(erp != NULL); in xfs_iext_remove_indirect()
1302 nex2 = MAX((erp->er_extcount - (nex1 + ext_cnt)), 0); in xfs_iext_remove_indirect()
1303 ext_diff = MIN(ext_cnt, (erp->er_extcount - nex1)); in xfs_iext_remove_indirect()
1308 if (ext_diff == erp->er_extcount) { in xfs_iext_remove_indirect()
1315 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_remove_indirect()
1324 memmove(&erp->er_extbuf[nex1], in xfs_iext_remove_indirect()
1325 &erp->er_extbuf[nex1 + ext_diff], in xfs_iext_remove_indirect()
1329 memset(&erp->er_extbuf[nex1 + nex2], 0, (XFS_IEXT_BUFSZ - in xfs_iext_remove_indirect()
1332 erp->er_extcount -= ext_diff; in xfs_iext_remove_indirect()
1337 erp++; in xfs_iext_remove_indirect()
1537 xfs_ext_irec_t *erp = NULL; /* indirection array pointer */ in xfs_iext_bno_to_ext() local
1553 erp = xfs_iext_bno_to_irec(ifp, bno, &erp_idx); in xfs_iext_bno_to_ext()
1554 base = erp->er_extbuf; in xfs_iext_bno_to_ext()
1555 high = erp->er_extcount - 1; in xfs_iext_bno_to_ext()
1573 idx += erp->er_extoff; in xfs_iext_bno_to_ext()
1581 idx += erp->er_extoff; in xfs_iext_bno_to_ext()
1605 xfs_ext_irec_t *erp = NULL; /* indirection array pointer */ in xfs_iext_bno_to_irec() local
1619 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_bno_to_irec()
1620 erp_next = erp_idx < nlists - 1 ? erp + 1 : NULL; in xfs_iext_bno_to_irec()
1621 if (bno < xfs_bmbt_get_startoff(erp->er_extbuf)) { in xfs_iext_bno_to_irec()
1631 return erp; in xfs_iext_bno_to_irec()
1648 xfs_ext_irec_t *erp = NULL; /* pointer to current irec */ in xfs_iext_idx_to_irec() local
1668 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_idx_to_irec()
1669 prev = erp_idx > 0 ? erp - 1 : NULL; in xfs_iext_idx_to_irec()
1670 if (page_idx < erp->er_extoff || (page_idx == erp->er_extoff && in xfs_iext_idx_to_irec()
1673 } else if (page_idx > erp->er_extoff + erp->er_extcount || in xfs_iext_idx_to_irec()
1674 (page_idx == erp->er_extoff + erp->er_extcount && in xfs_iext_idx_to_irec()
1677 } else if (page_idx == erp->er_extoff + erp->er_extcount && in xfs_iext_idx_to_irec()
1678 erp->er_extcount == XFS_LINEAR_EXTS) { in xfs_iext_idx_to_irec()
1682 erp = erp_idx < nlists ? erp + 1 : NULL; in xfs_iext_idx_to_irec()
1685 page_idx -= erp->er_extoff; in xfs_iext_idx_to_irec()
1691 return erp; in xfs_iext_idx_to_irec()
1702 xfs_ext_irec_t *erp; /* indirection array pointer */ in xfs_iext_irec_init() local
1709 erp = kmem_alloc(sizeof(xfs_ext_irec_t), KM_NOFS); in xfs_iext_irec_init()
1718 erp->er_extbuf = ifp->if_u1.if_extents; in xfs_iext_irec_init()
1719 erp->er_extcount = nextents; in xfs_iext_irec_init()
1720 erp->er_extoff = 0; in xfs_iext_irec_init()
1725 ifp->if_u1.if_ext_irec = erp; in xfs_iext_irec_init()
1738 xfs_ext_irec_t *erp; /* indirection array pointer */ in xfs_iext_irec_new() local
1752 erp = ifp->if_u1.if_ext_irec; in xfs_iext_irec_new()
1754 memmove(&erp[i], &erp[i-1], sizeof(xfs_ext_irec_t)); in xfs_iext_irec_new()
1759 erp = ifp->if_u1.if_ext_irec; in xfs_iext_irec_new()
1760 erp[erp_idx].er_extbuf = kmem_alloc(XFS_IEXT_BUFSZ, KM_NOFS); in xfs_iext_irec_new()
1762 memset(erp[erp_idx].er_extbuf, 0, XFS_IEXT_BUFSZ); in xfs_iext_irec_new()
1763 erp[erp_idx].er_extcount = 0; in xfs_iext_irec_new()
1764 erp[erp_idx].er_extoff = erp_idx > 0 ? in xfs_iext_irec_new()
1765 erp[erp_idx-1].er_extoff + erp[erp_idx-1].er_extcount : 0; in xfs_iext_irec_new()
1766 return (&erp[erp_idx]); in xfs_iext_irec_new()
1777 xfs_ext_irec_t *erp; /* indirection array pointer */ in xfs_iext_irec_remove() local
1783 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_irec_remove()
1784 if (erp->er_extbuf) { in xfs_iext_irec_remove()
1786 -erp->er_extcount); in xfs_iext_irec_remove()
1787 kmem_free(erp->er_extbuf); in xfs_iext_irec_remove()
1790 erp = ifp->if_u1.if_ext_irec; in xfs_iext_irec_remove()
1792 memmove(&erp[i], &erp[i+1], sizeof(xfs_ext_irec_t)); in xfs_iext_irec_remove()
1851 xfs_ext_irec_t *erp, *erp_next;/* pointers to irec entries */ in xfs_iext_irec_compact_pages() local
1858 erp = &ifp->if_u1.if_ext_irec[erp_idx]; in xfs_iext_irec_compact_pages()
1859 erp_next = erp + 1; in xfs_iext_irec_compact_pages()
1861 (XFS_LINEAR_EXTS - erp->er_extcount)) { in xfs_iext_irec_compact_pages()
1862 memcpy(&erp->er_extbuf[erp->er_extcount], in xfs_iext_irec_compact_pages()
1865 erp->er_extcount += erp_next->er_extcount; in xfs_iext_irec_compact_pages()