Home | History | Annotate | Download | only in squashfs

Lines Matching refs:inode

29  * file inode (itself stored in one or more compressed metadata blocks).
58 * Locate cache slot in range [offset, index] for specified inode. If
61 static struct meta_index *locate_meta_index(struct inode *inode, int offset,
65 struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
76 if (msblk->meta_index[i].inode_number == inode->i_ino &&
100 static struct meta_index *empty_meta_index(struct inode *inode, int offset,
103 struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
149 meta->inode_number = inode->i_ino;
161 static void release_meta_index(struct inode *inode, struct meta_index *meta)
163 struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
233 * Search and grow the index cache for the specified inode, returning the
237 static int fill_meta_index(struct inode *inode, int index,
240 struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
241 int skip = calculate_skip(i_size_read(inode) >> msblk->block_log);
245 u64 cur_index_block = squashfs_i(inode)->block_list_start;
246 int cur_offset = squashfs_i(inode)->offset;
247 u64 cur_data_block = squashfs_i(inode)->start;
256 meta = locate_meta_index(inode, offset + 1, index);
259 meta = empty_meta_index(inode, offset + 1, skip);
286 long long res = read_indexes(inode->i_sb, blocks,
293 * error allocated to this inode...
313 release_meta_index(inode, meta);
327 release_meta_index(inode, meta);
336 static int read_blocklist(struct inode *inode, int index, u64 *block)
342 int res = fill_meta_index(inode, index, &start, &offset, block);
358 blks = read_indexes(inode->i_sb, index - res, &start, &offset);
367 res = squashfs_read_metadata(inode->i_sb, &size, &start, &offset,
377 struct inode *inode = page->mapping->host;
378 struct squashfs_sb_info *msblk = inode->i_sb->s_fs_info;
387 int file_end = i_size_read(inode) >> msblk->block_log;
390 page->index, squashfs_i(inode)->start);
392 if (page->index >= ((i_size_read(inode) + PAGE_CACHE_SIZE - 1) >>
396 if (index < file_end || squashfs_i(inode)->fragment_block ==
403 int bsize = read_blocklist(inode, index, &block);
409 (i_size_read(inode) & (msblk->block_size - 1)) :
416 buffer = squashfs_get_datablock(inode->i_sb,
431 buffer = squashfs_get_fragment(inode->i_sb,
432 squashfs_i(inode)->fragment_block,
433 squashfs_i(inode)->fragment_size);
437 squashfs_i(inode)->fragment_block,
438 squashfs_i(inode)->fragment_size);
442 bytes = i_size_read(inode) & (msblk->block_size - 1);
443 offset = squashfs_i(inode)->fragment_offset;