Lines Matching refs:fnode
161 * Load fnode to memory
164 struct fnode *hpfs_map_fnode(struct super_block *s, ino_t ino, struct buffer_head **bhp)
166 struct fnode *fnode;
167 if (hpfs_sb(s)->sb_chk) if (hpfs_chk_sectors(s, ino, 1, "fnode")) {
170 if ((fnode = hpfs_map_sector(s, ino, bhp, FNODE_RD_AHEAD))) {
174 if (le32_to_cpu(fnode->magic) != FNODE_MAGIC) {
175 hpfs_error(s, "bad magic on fnode %08lx",
179 if (!fnode_is_dir(fnode)) {
180 if ((unsigned)fnode->btree.n_used_nodes + (unsigned)fnode->btree.n_free_nodes !=
181 (bp_internal(&fnode->btree) ? 12 : 8)) {
183 "bad number of nodes in fnode %08lx",
187 if (le16_to_cpu(fnode->btree.first_free) !=
188 8 + fnode->btree.n_used_nodes * (bp_internal(&fnode->btree) ? 8 : 12)) {
190 "bad first_free pointer in fnode %08lx",
195 if (le16_to_cpu(fnode->ea_size_s) && (le16_to_cpu(fnode->ea_offs) < 0xc4 ||
196 le16_to_cpu(fnode->ea_offs) + le16_to_cpu(fnode->acl_size_s) + le16_to_cpu(fnode->ea_size_s) > 0x200)) {
198 "bad EA info in fnode %08lx: ea_offs == %04x ea_size_s == %04x",
200 le16_to_cpu(fnode->ea_offs), le16_to_cpu(fnode->ea_size_s));
203 ea = fnode_ea(fnode);
204 ea_end = fnode_end_ea(fnode);
207 hpfs_error(s, "bad EA in fnode %08lx",
215 return fnode;
325 struct fnode *fnode;
328 fnode = hpfs_map_fnode(s, ino, &bh);
329 if (!fnode)
332 dno = le32_to_cpu(fnode->u.external[0].disk_secno);