30 return ERR_CAST(inode);
45 unsigned long parent_block = 0;
46 unsigned long parent_offset = 0;
47 struct inode *child_inode = child->
d_inode;
50 struct buffer_head * bh =
NULL;
56 "child is not a directory!\n");
66 "child directory not normalized!\n");
77 bh = sb_bread(child_inode->
i_sb, parent_block);
87 parent_offset = (
unsigned long)isonum_711(de->
length);
91 if ((isonum_711(de->
name_len) != 1) || (de->
name[0] != 1)) {
93 "directory for NFS.\n");
99 isofs_normalize_block_and_offset(de, &parent_block, &parent_offset);
110 isofs_export_encode_fh(
struct inode *inode,
113 struct inode *parent)
126 if (parent && (len < 5)) {
129 }
else if (len < 3) {
141 eparent = ISOFS_I(parent);
162 struct fid *
fid,
int fh_len,
int fh_type)
166 if (fh_len < 3 || fh_type > 2)
169 return isofs_export_iget(sb, ifid->
block, ifid->
offset,
174 struct fid *
fid,
int fh_len,
int fh_type)
178 if (fh_len < 2 || fh_type != 2)
181 return isofs_export_iget(sb,
188 .encode_fh = isofs_export_encode_fh,
189 .fh_to_dentry = isofs_fh_to_dentry,
190 .fh_to_parent = isofs_fh_to_parent,
191 .get_parent = isofs_export_get_parent,