Lines Matching refs:na
650 static BOOL ntfs_is_cb_compressed(ntfs_attr *na, runlist_element *rl, in ntfs_is_cb_compressed() argument
666 rl = ntfs_attr_find_vcn(na, rl->vcn); in ntfs_is_cb_compressed()
709 s64 ntfs_compressed_attr_pread(ntfs_attr *na, s64 pos, s64 count, void *b) in ntfs_compressed_attr_pread() argument
724 (unsigned long long)na->ni->mft_no, le32_to_cpu(na->type), in ntfs_compressed_attr_pread()
726 data_flags = na->data_flags; in ntfs_compressed_attr_pread()
727 compression = na->ni->flags & FILE_ATTR_COMPRESSED; in ntfs_compressed_attr_pread()
728 if (!na || !na->ni || !na->ni->vol || !b in ntfs_compressed_attr_pread()
739 if (NAttrEncrypted(na)) { in ntfs_compressed_attr_pread()
746 if (pos + count > na->data_size) { in ntfs_compressed_attr_pread()
747 if (pos >= na->data_size) { in ntfs_compressed_attr_pread()
750 count = na->data_size - pos; in ntfs_compressed_attr_pread()
753 if (!NAttrNonResident(na)) in ntfs_compressed_attr_pread()
754 return ntfs_attr_pread(na, pos, count, b); in ntfs_compressed_attr_pread()
755 if (na->compression_block_size < NTFS_SB_SIZE) { in ntfs_compressed_attr_pread()
757 (long)na->compression_block_size); in ntfs_compressed_attr_pread()
763 if (pos + count > na->initialized_size) { in ntfs_compressed_attr_pread()
764 if (pos >= na->initialized_size) { in ntfs_compressed_attr_pread()
768 total2 = pos + count - na->initialized_size; in ntfs_compressed_attr_pread()
772 vol = na->ni->vol; in ntfs_compressed_attr_pread()
773 cb_size = na->compression_block_size; in ntfs_compressed_attr_pread()
775 cb_clusters = na->compression_block_clusters; in ntfs_compressed_attr_pread()
803 na->compression_block_size_bits; in ntfs_compressed_attr_pread()
812 rl = ntfs_attr_find_vcn(na, vcn); in ntfs_compressed_attr_pread()
831 } else if (!ntfs_is_cb_compressed(na, rl, vcn, cb_clusters)) { in ntfs_compressed_attr_pread()
848 NAttrClearCompressed(na); in ntfs_compressed_attr_pread()
849 na->data_flags &= ~ATTR_COMPRESSION_MASK; in ntfs_compressed_attr_pread()
850 tdata_size = na->data_size; in ntfs_compressed_attr_pread()
851 tinitialized_size = na->initialized_size; in ntfs_compressed_attr_pread()
852 na->data_size = na->initialized_size = na->allocated_size; in ntfs_compressed_attr_pread()
854 br = ntfs_attr_pread(na, ofs, to_read, b); in ntfs_compressed_attr_pread()
860 (long long)na->ni->mft_no, in ntfs_compressed_attr_pread()
865 na->data_size = tdata_size; in ntfs_compressed_attr_pread()
866 na->initialized_size = tinitialized_size; in ntfs_compressed_attr_pread()
867 na->ni->flags |= compression; in ntfs_compressed_attr_pread()
868 na->data_flags = data_flags; in ntfs_compressed_attr_pread()
882 na->data_size = tdata_size; in ntfs_compressed_attr_pread()
883 na->initialized_size = tinitialized_size; in ntfs_compressed_attr_pread()
884 na->ni->flags |= compression; in ntfs_compressed_attr_pread()
885 na->data_flags = data_flags; in ntfs_compressed_attr_pread()
906 NAttrClearCompressed(na); in ntfs_compressed_attr_pread()
907 na->data_flags &= ~ATTR_COMPRESSION_MASK; in ntfs_compressed_attr_pread()
908 tdata_size = na->data_size; in ntfs_compressed_attr_pread()
909 tinitialized_size = na->initialized_size; in ntfs_compressed_attr_pread()
910 na->data_size = na->initialized_size = na->allocated_size; in ntfs_compressed_attr_pread()
912 br = ntfs_attr_pread(na, in ntfs_compressed_attr_pread()
920 (long long)na->ni->mft_no, in ntfs_compressed_attr_pread()
925 na->data_size = tdata_size; in ntfs_compressed_attr_pread()
926 na->initialized_size = tinitialized_size; in ntfs_compressed_attr_pread()
927 na->ni->flags |= compression; in ntfs_compressed_attr_pread()
928 na->data_flags = data_flags; in ntfs_compressed_attr_pread()
939 na->data_size = tdata_size; in ntfs_compressed_attr_pread()
940 na->initialized_size = tinitialized_size; in ntfs_compressed_attr_pread()
941 na->ni->flags |= compression; in ntfs_compressed_attr_pread()
942 na->data_flags = data_flags; in ntfs_compressed_attr_pread()
1068 static s32 ntfs_comp_set(ntfs_attr *na, runlist_element *rl, in ntfs_comp_set() argument
1090 vol = na->ni->vol; in ntfs_comp_set()
1094 outbuf = (char*)ntfs_malloc(na->compression_block_size in ntfs_comp_set()
1095 + 2*(na->compression_block_size/NTFS_SB_SIZE) in ntfs_comp_set()
1110 > na->compression_block_size)) in ntfs_comp_set()
1168 static BOOL valid_compressed_run(ntfs_attr *na, runlist_element *rl, in valid_compressed_run() argument
1176 while (xrl->vcn & (na->compression_block_clusters - 1)) in valid_compressed_run()
1184 & (na->compression_block_clusters - 1)) { in valid_compressed_run()
1193 err, text, (long)(xrl - na->rl), in valid_compressed_run()
1194 (long long)na->ni->mft_no); in valid_compressed_run()
1232 static int ntfs_compress_overwr_free(ntfs_attr *na, runlist_element *rl, in ntfs_compress_overwr_free() argument
1246 vol = na->ni->vol; in ntfs_compress_overwr_free()
1314 na->compressed_size -= freed << vol->cluster_size_bits; in ntfs_compress_overwr_free()
1427 na->compressed_size -= freed << vol->cluster_size_bits; in ntfs_compress_overwr_free()
1444 static int ntfs_compress_free(ntfs_attr *na, runlist_element *rl, in ntfs_compress_free() argument
1460 vol = na->ni->vol; in ntfs_compress_free()
1482 & (na->compression_block_clusters - 1))) { in ntfs_compress_free()
1484 res = ntfs_compress_overwr_free(na,rl, in ntfs_compress_free()
1543 na->compressed_size -= freecnt in ntfs_compress_free()
1573 NAttrSetRunlistDirty(na); in ntfs_compress_free()
1582 static int ntfs_read_append(ntfs_attr *na, const runlist_element *rl, in ntfs_read_append() argument
1591 if (compsz == na->compression_block_size) { in ntfs_read_append()
1603 decompsz = na->compression_block_size; in ntfs_read_append()
1604 got = read_clusters(na->ni->vol, rl, offs, in ntfs_read_append()
1626 static s32 ntfs_flush(ntfs_attr *na, runlist_element *rl, s64 offs, in ntfs_flush() argument
1635 written = ntfs_comp_set(na, rl, offs, count, outbuf); in ntfs_flush()
1639 && ntfs_compress_free(na,rl,offs + written, in ntfs_flush()
1640 offs + na->compression_block_size, appending, in ntfs_flush()
1646 clsz = 1 << na->ni->vol->cluster_size_bits; in ntfs_flush()
1650 written = write_clusters(na->ni->vol, rl, in ntfs_flush()
1670 s64 ntfs_compressed_pwrite(ntfs_attr *na, runlist_element *wrl, s64 wpos, in ntfs_compressed_pwrite() argument
1694 if (!valid_compressed_run(na,wrl,FALSE,"begin compressed write")) { in ntfs_compressed_pwrite()
1699 || (compressed_part > (int)na->compression_block_clusters)) { in ntfs_compressed_pwrite()
1706 if (na->unused_runs < 2) { in ntfs_compressed_pwrite()
1711 if (na->compression_block_size < NTFS_SB_SIZE) { in ntfs_compressed_pwrite()
1713 (long)na->compression_block_size); in ntfs_compressed_pwrite()
1720 vol = na->ni->vol; in ntfs_compressed_pwrite()
1721 compression_length = na->compression_block_clusters; in ntfs_compressed_pwrite()
1732 | (na->compression_block_size - 1)) + 1; in ntfs_compressed_pwrite()
1735 appending = endwrite >= na->initialized_size; in ntfs_compressed_pwrite()
1778 outbuf = (char*)ntfs_malloc(na->compression_block_size); in ntfs_compressed_pwrite()
1784 to_read = na->data_size in ntfs_compressed_pwrite()
1786 if (to_read > na->compression_block_size) in ntfs_compressed_pwrite()
1787 to_read = na->compression_block_size; in ntfs_compressed_pwrite()
1790 if (!ntfs_read_append(na, brl, roffs, compsz, in ntfs_compressed_pwrite()
1793 written = ntfs_flush(na, brl, roffs, in ntfs_compressed_pwrite()
1809 inbuf = (char*)ntfs_malloc(na->compression_block_size); in ntfs_compressed_pwrite()
1819 written = ntfs_comp_set(na, brl, roffs, in ntfs_compressed_pwrite()
1827 && !ntfs_compress_free(na,brl, in ntfs_compressed_pwrite()
1829 na->compression_block_size in ntfs_compressed_pwrite()
1860 && !valid_compressed_run(na,wrl,TRUE,"end compressed write")) in ntfs_compressed_pwrite()
1873 int ntfs_compressed_close(ntfs_attr *na, runlist_element *wrl, s64 offs, in ntfs_compressed_close() argument
1888 if (na->unused_runs < 2) { in ntfs_compressed_close()
1898 if (na->compression_block_size < NTFS_SB_SIZE) { in ntfs_compressed_close()
1900 (long)na->compression_block_size); in ntfs_compressed_close()
1906 vol = na->ni->vol; in ntfs_compressed_close()
1907 compression_length = na->compression_block_clusters; in ntfs_compressed_close()
1913 inbuf = (char*)ntfs_malloc(na->compression_block_size); in ntfs_compressed_close()
1939 written = ntfs_comp_set(na, brl, roffs, in ntfs_compressed_close()
1943 && !ntfs_compress_free(na,brl, in ntfs_compressed_close()
1945 na->compression_block_size + roffs, in ntfs_compressed_close()
1958 if (done && !valid_compressed_run(na,wrl,TRUE,"end compressed close")) in ntfs_compressed_close()