42 #include <linux/slab.h>
52 static long long squashfs_inode_lookup(
struct super_block *
sb,
int ino_num)
61 TRACE(
"Entered squashfs_inode_lookup, inode_number = %d\n", ino_num);
67 TRACE(
"squashfs_inode_lookup, inode = 0x%llx\n",
80 TRACE(
"Entered squashfs_export_iget\n");
82 ino = squashfs_inode_lookup(sb, ino_num);
90 static struct dentry *squashfs_fh_to_dentry(
struct super_block *sb,
91 struct fid *
fid,
int fh_len,
int fh_type)
97 return squashfs_export_iget(sb, fid->
i32.ino);
101 static struct dentry *squashfs_fh_to_parent(
struct super_block *sb,
102 struct fid *fid,
int fh_len,
int fh_type)
107 return squashfs_export_iget(sb, fid->
i32.parent_ino);
111 static struct dentry *squashfs_get_parent(
struct dentry *
child)
114 unsigned int parent_ino = squashfs_i(inode)->parent;
116 return squashfs_export_iget(inode->
i_sb, parent_ino);
124 u64 lookup_table_start,
u64 next_table,
unsigned int inodes)
129 TRACE(
"In read_inode_lookup_table, length %d\n", length);
141 if (lookup_table_start + length > next_table)
150 if (!IS_ERR(table) &&
le64_to_cpu(table[0]) >= lookup_table_start) {
160 .fh_to_dentry = squashfs_fh_to_dentry,
161 .fh_to_parent = squashfs_fh_to_parent,
162 .get_parent = squashfs_get_parent