Lines Matching refs:na

452 static void ntfs_restore_rl(ntfs_attr *na, runlist_element *oldrl)
458 vol = na->ni->vol;
460 for (brl=na->rl; brl->length; brl++) {
479 free(na->rl);
480 na->rl = oldrl;
481 if (ntfs_attr_update_mapping_pairs(na, 0)) {
490 static int ntfs_inner_zero(ntfs_attr *na, runlist_element *rl)
501 vol = na->ni->vol;
509 && (pos < na->initialized_size)) {
540 static int ntfs_merge_allocation(ntfs_attr *na, runlist_element *rl,
547 vol = na->ni->vol;
549 if ((rl->vcn << vol->cluster_size_bits) < na->initialized_size) {
550 err = ntfs_inner_zero(na, rl);
553 if (na->data_flags & ATTR_IS_SPARSE) {
554 na->compressed_size += size;
555 if (na->compressed_size >= na->allocated_size) {
556 na->data_flags &= ~ATTR_IS_SPARSE;
557 if (na->compressed_size > na->allocated_size) {
562 (long long)na->data_size,
563 (long long)na->compressed_size,
564 (long long)na->allocated_size);
572 rl = ntfs_runlists_merge(na->rl, rl);
577 na->rl = rl;
579 if (ntfs_attr_update_mapping_pairs(na, 0)) {
589 static int ntfs_inner_allocation(ntfs_attr *na, s64 alloc_offs, s64 alloc_len)
605 vol = na->ni->vol;
612 rl = na->rl;
644 err = ntfs_merge_allocation(na, rlc,
652 static int ntfs_full_allocation(ntfs_attr *na, ntfs_attr_search_ctx *ctx,
662 initialized_size = na->initialized_size;
663 data_size = na->data_size;
665 if (na->allocated_size <= alloc_offs) {
670 err = ntfs_attr_truncate(na, alloc_offs);
672 err = ntfs_attr_truncate_solid(na,
680 if ((alloc_offs + alloc_len) > na->allocated_size)
681 err = ntfs_attr_truncate(na, alloc_offs + alloc_len);
683 err = ntfs_inner_allocation(na, alloc_offs, alloc_len);
686 na->initialized_size = initialized_size;
690 na->data_size = data_size;
700 na->data_size = alloc_offs + alloc_len;
712 attr->data_size = cpu_to_sle64(na->data_size);
714 = cpu_to_sle64(na->initialized_size);
716 = cpu_to_sle64(na->allocated_size);
717 if (na->data_flags & ATTR_IS_SPARSE)
719 = cpu_to_sle64(na->compressed_size);
722 ni = na->ni;
723 ni->data_size = na->data_size;
724 if (na->data_flags & ATTR_IS_SPARSE) {
726 = na->compressed_size;
730 = na->allocated_size;
747 ntfs_attr *na;
755 na = ntfs_attr_open(ni, attr_type, attr_name, attr_name_len);
756 if (!na) {
762 if (na->data_flags & ATTR_IS_COMPRESSED) {
776 allocated_size = na->allocated_size;
778 if (na->rl)
779 err = ntfs_attr_map_whole_runlist(na);
781 if (na->rl)
782 oldrl = ntfs_save_rl(na->rl);
785 if (!na->rl || oldrl) {
786 err = ntfs_full_allocation(na, ctx,
793 ntfs_restore_rl(na, oldrl);
807 ntfs_attr_close(na);