Lines Matching full:length
43 * Read the metadata block length, this is stored in the first two
47 u64 *cur_index, int *offset, int *length) in get_block_length() argument
57 *length = (unsigned char) bh->b_data[*offset]; in get_block_length()
62 *length |= (unsigned char) bh->b_data[0] << 8; in get_block_length()
65 *length = (unsigned char) bh->b_data[*offset] | in get_block_length()
83 * Read and decompress a metadata block or datablock. Length is non-zero
85 * filesystem), otherwise the length is obtained from the first two bytes of
86 * the metadata block. A bit in the length field indicates if the block
91 int squashfs_read_data(struct super_block *sb, u64 index, int length, in squashfs_read_data() argument
100 bh = kcalloc(((output->length + msblk->devblksize - 1) in squashfs_read_data()
105 if (length) { in squashfs_read_data()
110 compressed = SQUASHFS_COMPRESSED_BLOCK(length); in squashfs_read_data()
111 length = SQUASHFS_COMPRESSED_SIZE_BLOCK(length); in squashfs_read_data()
113 *next_index = index + length; in squashfs_read_data()
116 index, compressed ? "" : "un", length, output->length); in squashfs_read_data()
118 if (length < 0 || length > output->length || in squashfs_read_data()
119 (index + length) > msblk->bytes_used) in squashfs_read_data()
122 for (b = 0; bytes < length; b++, cur_index++) { in squashfs_read_data()
136 bh[0] = get_block_length(sb, &cur_index, &offset, &length); in squashfs_read_data()
142 compressed = SQUASHFS_COMPRESSED(length); in squashfs_read_data()
143 length = SQUASHFS_COMPRESSED_SIZE(length); in squashfs_read_data()
145 *next_index = index + length + 2; in squashfs_read_data()
148 compressed ? "" : "un", length); in squashfs_read_data()
150 if (length < 0 || length > output->length || in squashfs_read_data()
151 (index + length) > msblk->bytes_used) in squashfs_read_data()
154 for (; bytes < length; b++) { in squashfs_read_data()
172 length = squashfs_decompress(msblk, bh, b, offset, length, in squashfs_read_data()
174 if (length < 0) in squashfs_read_data()
183 for (bytes = length; k < b; k++) { in squashfs_read_data()
206 return length; in squashfs_read_data()