• Home
  • Raw
  • Download

Lines Matching refs:attr

87 static int attr_load_runs(struct ATTRIB *attr, struct ntfs_inode *ni,  in attr_load_runs()  argument
91 CLST svcn = le64_to_cpu(attr->nres.svcn); in attr_load_runs()
92 CLST evcn = le64_to_cpu(attr->nres.evcn); in attr_load_runs()
102 asize = le32_to_cpu(attr->size); in attr_load_runs()
103 run_off = le16_to_cpu(attr->nres.run_off); in attr_load_runs()
109 vcn ? *vcn : svcn, Add2Ptr(attr, run_off), in attr_load_runs()
237 int attr_make_nonresident(struct ntfs_inode *ni, struct ATTRIB *attr, in attr_make_nonresident() argument
251 if (attr->non_res) { in attr_make_nonresident()
252 *ins_attr = attr; in attr_make_nonresident()
260 asize = le32_to_cpu(attr->size); in attr_make_nonresident()
261 next = Add2Ptr(attr, asize); in attr_make_nonresident()
262 aoff = PtrOffset(rec, attr); in attr_make_nonresident()
263 rsize = le32_to_cpu(attr->res.data_size); in attr_make_nonresident()
264 is_data = attr->type == ATTR_DATA && !attr->name_len; in attr_make_nonresident()
267 if (is_attr_compressed(attr)) in attr_make_nonresident()
274 attr_s = kmemdup(attr, asize, GFP_NOFS); in attr_make_nonresident()
284 const char *data = resident_data(attr); in attr_make_nonresident()
319 memmove(attr, Add2Ptr(attr, asize), used - aoff); in attr_make_nonresident()
327 attr_s->flags, &attr, NULL, NULL); in attr_make_nonresident()
332 attr->nres.data_size = cpu_to_le64(rsize); in attr_make_nonresident()
333 attr->nres.valid_size = attr->nres.data_size; in attr_make_nonresident()
335 *ins_attr = attr; in attr_make_nonresident()
344 attr = Add2Ptr(rec, aoff); in attr_make_nonresident()
345 memmove(next, attr, used - aoff); in attr_make_nonresident()
346 memcpy(attr, attr_s, asize); in attr_make_nonresident()
362 static int attr_set_size_res(struct ntfs_inode *ni, struct ATTRIB *attr, in attr_set_size_res() argument
370 u32 asize = le32_to_cpu(attr->size); in attr_set_size_res()
371 u32 aoff = PtrOffset(rec, attr); in attr_set_size_res()
372 u32 rsize = le32_to_cpu(attr->res.data_size); in attr_set_size_res()
374 char *next = Add2Ptr(attr, asize); in attr_set_size_res()
381 return attr_make_nonresident(ni, attr, le, mi, new_size, in attr_set_size_res()
389 memset(Add2Ptr(resident_data(attr), rsize), 0, in attr_set_size_res()
393 attr->size = cpu_to_le32(asize + dsize); in attr_set_size_res()
394 attr->res.data_size = cpu_to_le32(new_size); in attr_set_size_res()
396 *ins_attr = attr; in attr_set_size_res()
421 struct ATTRIB *attr = NULL, *attr_b; in attr_set_size() local
481 attr = attr_b; in attr_set_size()
489 attr = ni_find_attr(ni, attr_b, &le, type, name, name_len, &vcn, in attr_set_size()
491 if (!attr) { in attr_set_size()
497 svcn = le64_to_cpu(attr->nres.svcn); in attr_set_size()
498 evcn = le64_to_cpu(attr->nres.evcn); in attr_set_size()
507 err = attr_load_runs(attr, ni, run, NULL); in attr_set_size()
601 err = mi_pack_runs(mi, attr, run, vcn - svcn); in attr_set_size()
605 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_set_size()
661 attr_b->flags, &attr, &mi, NULL); in attr_set_size()
677 attr = NULL; in attr_set_size()
684 svcn = le64_to_cpu(attr->nres.svcn); in attr_set_size()
685 evcn = le64_to_cpu(attr->nres.evcn); in attr_set_size()
713 err = mi_pack_runs(mi, attr, run, vcn - svcn); in attr_set_size()
726 mi_remove_attr(NULL, mi, attr); in attr_set_size()
735 attr->nres.evcn = cpu_to_le64((u64)vcn - 1); in attr_set_size()
778 attr = attr_b; in attr_set_size()
795 attr = mi_find_attr(mi, NULL, type, name, name_len, &le->id); in attr_set_size()
796 if (!attr) { in attr_set_size()
850 if (attr) in attr_set_size()
855 attr = attr_b; in attr_set_size()
863 attr = ni_find_attr(ni, attr_b, &le, type, name, name_len, in attr_set_size()
865 if (!attr) in attr_set_size()
870 if (mi_pack_runs(mi, attr, run, evcn - svcn + 1)) in attr_set_size()
892 struct ATTRIB *attr = NULL, *attr_b; in attr_data_get_block() local
952 attr = attr_b; in attr_data_get_block()
957 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_data_get_block()
959 if (!attr) { in attr_data_get_block()
963 svcn = le64_to_cpu(attr->nres.svcn); in attr_data_get_block()
964 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_data_get_block()
967 err = attr_load_runs(attr, ni, run, NULL); in attr_data_get_block()
1024 err = mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn); in attr_data_get_block()
1036 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_data_get_block()
1057 attr = attr_b; in attr_data_get_block()
1067 attr = ni_find_attr(ni, attr, &le, ATTR_DATA, NULL, 0, &svcn, &mi); in attr_data_get_block()
1069 if (attr) { in attr_data_get_block()
1072 CLST evcn = le64_to_cpu(attr->nres.evcn); in attr_data_get_block()
1078 mi_remove_attr(NULL, mi, attr); in attr_data_get_block()
1092 attr = NULL; in attr_data_get_block()
1096 attr = mi_find_attr(mi, NULL, ATTR_DATA, NULL, 0, in attr_data_get_block()
1098 if (!attr) { in attr_data_get_block()
1102 svcn = le64_to_cpu(attr->nres.svcn); in attr_data_get_block()
1103 evcn = le64_to_cpu(attr->nres.evcn); in attr_data_get_block()
1109 err = attr_load_runs(attr, ni, run, &end); in attr_data_get_block()
1114 attr->nres.svcn = cpu_to_le64(next_svcn); in attr_data_get_block()
1115 err = mi_pack_runs(mi, attr, run, evcn1 - next_svcn); in attr_data_get_block()
1123 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_data_get_block()
1129 attr_b->flags, &attr, &mi, NULL); in attr_data_get_block()
1145 struct ATTRIB *attr; in attr_data_read_resident() local
1148 attr = ni_find_attr(ni, NULL, NULL, ATTR_DATA, NULL, 0, NULL, NULL); in attr_data_read_resident()
1149 if (!attr) in attr_data_read_resident()
1152 if (attr->non_res) in attr_data_read_resident()
1156 data_size = le32_to_cpu(attr->res.data_size); in attr_data_read_resident()
1158 const char *data = resident_data(attr); in attr_data_read_resident()
1182 struct ATTRIB *attr; in attr_data_write_resident() local
1185 attr = ni_find_attr(ni, NULL, NULL, ATTR_DATA, NULL, 0, NULL, &mi); in attr_data_write_resident()
1186 if (!attr) in attr_data_write_resident()
1189 if (attr->non_res) { in attr_data_write_resident()
1195 data_size = le32_to_cpu(attr->res.data_size); in attr_data_write_resident()
1197 char *data = resident_data(attr); in attr_data_write_resident()
1219 struct ATTRIB *attr; in attr_load_runs_vcn() local
1229 attr = ni_find_attr(ni, NULL, NULL, type, name, name_len, &vcn, NULL); in attr_load_runs_vcn()
1230 if (!attr) { in attr_load_runs_vcn()
1235 svcn = le64_to_cpu(attr->nres.svcn); in attr_load_runs_vcn()
1236 evcn = le64_to_cpu(attr->nres.evcn); in attr_load_runs_vcn()
1243 ro = le16_to_cpu(attr->nres.run_off); in attr_load_runs_vcn()
1245 if (ro > le32_to_cpu(attr->size)) in attr_load_runs_vcn()
1249 Add2Ptr(attr, ro), le32_to_cpu(attr->size) - ro); in attr_load_runs_vcn()
1288 int attr_wof_frame_info(struct ntfs_inode *ni, struct ATTRIB *attr, in attr_wof_frame_info() argument
1318 if (!attr->non_res) { in attr_wof_frame_info()
1319 if (vbo[1] + bytes_per_off > le32_to_cpu(attr->res.data_size)) { in attr_wof_frame_info()
1323 addr = resident_data(attr); in attr_wof_frame_info()
1340 wof_size = le64_to_cpu(attr->nres.data_size); in attr_wof_frame_info()
1433 int attr_is_frame_compressed(struct ntfs_inode *ni, struct ATTRIB *attr, in attr_is_frame_compressed() argument
1444 if (!is_attr_compressed(attr)) in attr_is_frame_compressed()
1447 if (!attr->non_res) in attr_is_frame_compressed()
1450 clst_frame = 1u << attr->nres.c_unit; in attr_is_frame_compressed()
1455 err = attr_load_runs_vcn(ni, attr->type, attr_name(attr), in attr_is_frame_compressed()
1456 attr->name_len, run, vcn); in attr_is_frame_compressed()
1478 alen = bytes_to_cluster(ni->mi.sbi, le64_to_cpu(attr->nres.alloc_size)); in attr_is_frame_compressed()
1491 err = attr_load_runs_vcn(ni, attr->type, in attr_is_frame_compressed()
1492 attr_name(attr), in attr_is_frame_compressed()
1493 attr->name_len, run, vcn_next); in attr_is_frame_compressed()
1543 struct ATTRIB *attr = NULL, *attr_b; in attr_allocate_frame() local
1566 attr = attr_b; in attr_allocate_frame()
1574 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_allocate_frame()
1576 if (!attr) { in attr_allocate_frame()
1580 svcn = le64_to_cpu(attr->nres.svcn); in attr_allocate_frame()
1581 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_allocate_frame()
1584 err = attr_load_runs(attr, ni, run, NULL); in attr_allocate_frame()
1634 err = mi_pack_runs(mi, attr, run, max(end, evcn1) - svcn); in attr_allocate_frame()
1645 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_allocate_frame()
1666 attr = attr_b; in attr_allocate_frame()
1676 attr = ni_find_attr(ni, attr, &le, ATTR_DATA, NULL, 0, &svcn, &mi); in attr_allocate_frame()
1678 if (attr) { in attr_allocate_frame()
1681 CLST evcn = le64_to_cpu(attr->nres.evcn); in attr_allocate_frame()
1687 mi_remove_attr(NULL, mi, attr); in attr_allocate_frame()
1701 attr = NULL; in attr_allocate_frame()
1705 attr = mi_find_attr(mi, NULL, ATTR_DATA, NULL, 0, in attr_allocate_frame()
1707 if (!attr) { in attr_allocate_frame()
1711 svcn = le64_to_cpu(attr->nres.svcn); in attr_allocate_frame()
1712 evcn = le64_to_cpu(attr->nres.evcn); in attr_allocate_frame()
1718 err = attr_load_runs(attr, ni, run, &end); in attr_allocate_frame()
1723 attr->nres.svcn = cpu_to_le64(next_svcn); in attr_allocate_frame()
1724 err = mi_pack_runs(mi, attr, run, evcn1 - next_svcn); in attr_allocate_frame()
1732 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_allocate_frame()
1738 attr_b->flags, &attr, &mi, NULL); in attr_allocate_frame()
1767 struct ATTRIB *attr = NULL, *attr_b; in attr_collapse_range() local
1838 attr = attr_b; in attr_collapse_range()
1846 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_collapse_range()
1848 if (!attr) { in attr_collapse_range()
1853 svcn = le64_to_cpu(attr->nres.svcn); in attr_collapse_range()
1854 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_collapse_range()
1860 attr->nres.svcn = cpu_to_le64(svcn - len); in attr_collapse_range()
1861 attr->nres.evcn = cpu_to_le64(evcn1 - 1 - len); in attr_collapse_range()
1863 le->vcn = attr->nres.svcn; in attr_collapse_range()
1871 err = attr_load_runs(attr, ni, run, &svcn); in attr_collapse_range()
1889 attr->nres.svcn = cpu_to_le64(vcn); in attr_collapse_range()
1891 le->vcn = attr->nres.svcn; in attr_collapse_range()
1896 err = mi_pack_runs(mi, attr, run, evcn1 - svcn - eat); in attr_collapse_range()
1900 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_collapse_range()
1904 evcn1 - eat - next_svcn, a_flags, &attr, in attr_collapse_range()
1917 u16 roff = le16_to_cpu(attr->nres.run_off); in attr_collapse_range()
1919 if (roff > le32_to_cpu(attr->size)) { in attr_collapse_range()
1925 evcn1 - 1, svcn, Add2Ptr(attr, roff), in attr_collapse_range()
1926 le32_to_cpu(attr->size) - roff); in attr_collapse_range()
1929 mi_remove_attr(NULL, mi, attr); in attr_collapse_range()
1950 attr = mi_find_attr(mi, NULL, ATTR_DATA, NULL, in attr_collapse_range()
1952 if (!attr) { in attr_collapse_range()
1964 attr = ni_enum_attr_ex(ni, attr, &le, &mi); in attr_collapse_range()
1965 if (!attr) { in attr_collapse_range()
1971 svcn = le64_to_cpu(attr->nres.svcn); in attr_collapse_range()
1972 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_collapse_range()
2025 struct ATTRIB *attr = NULL, *attr_b; in attr_punch_hole() local
2101 attr = attr_b; in attr_punch_hole()
2109 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_punch_hole()
2111 if (!attr) { in attr_punch_hole()
2116 svcn = le64_to_cpu(attr->nres.svcn); in attr_punch_hole()
2117 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_punch_hole()
2123 err = attr_load_runs(attr, ni, run, &svcn); in attr_punch_hole()
2154 err = mi_pack_runs(mi, attr, run, evcn1 - svcn); in attr_punch_hole()
2157 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_punch_hole()
2163 &attr, &mi, &le); in attr_punch_hole()
2182 attr = ni_enum_attr_ex(ni, attr, &le, &mi); in attr_punch_hole()
2183 if (!attr) { in attr_punch_hole()
2188 svcn = le64_to_cpu(attr->nres.svcn); in attr_punch_hole()
2189 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_punch_hole()
2228 if (mi_pack_runs(mi, attr, &run2, evcn1 - svcn)) in attr_punch_hole()
2243 struct ATTRIB *attr = NULL, *attr_b; in attr_insert_range() local
2333 attr = attr_b; in attr_insert_range()
2341 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_insert_range()
2343 if (!attr) { in attr_insert_range()
2348 svcn = le64_to_cpu(attr->nres.svcn); in attr_insert_range()
2349 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_insert_range()
2353 err = attr_load_runs(attr, ni, run, NULL); in attr_insert_range()
2363 err = mi_pack_runs(mi, attr, run, evcn1 + len - svcn); in attr_insert_range()
2367 next_svcn = le64_to_cpu(attr->nres.evcn) + 1; in attr_insert_range()
2369 while ((attr = ni_enum_attr_ex(ni, attr, &le, &mi)) && in attr_insert_range()
2370 attr->type == ATTR_DATA && !attr->name_len) { in attr_insert_range()
2371 le64_add_cpu(&attr->nres.svcn, len); in attr_insert_range()
2372 le64_add_cpu(&attr->nres.evcn, len); in attr_insert_range()
2374 le->vcn = attr->nres.svcn; in attr_insert_range()
2436 attr = attr_b; in attr_insert_range()
2443 attr = ni_find_attr(ni, attr_b, &le, ATTR_DATA, NULL, 0, &vcn, in attr_insert_range()
2445 if (!attr) { in attr_insert_range()
2449 svcn = le64_to_cpu(attr->nres.svcn); in attr_insert_range()
2450 evcn1 = le64_to_cpu(attr->nres.evcn) + 1; in attr_insert_range()
2453 if (attr_load_runs(attr, ni, run, NULL)) in attr_insert_range()
2459 if (mi_pack_runs(mi, attr, run, evcn1 + len - svcn)) in attr_insert_range()
2462 while ((attr = ni_enum_attr_ex(ni, attr, &le, &mi)) && in attr_insert_range()
2463 attr->type == ATTR_DATA && !attr->name_len) { in attr_insert_range()
2464 le64_sub_cpu(&attr->nres.svcn, len); in attr_insert_range()
2465 le64_sub_cpu(&attr->nres.evcn, len); in attr_insert_range()
2467 le->vcn = attr->nres.svcn; in attr_insert_range()