Lines Matching refs:fnode
74 int hpfs_read_ea(struct super_block *s, struct fnode *fnode, char *key,
82 struct extended_attribute *ea_end = fnode_end_ea(fnode);
83 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
93 a = le32_to_cpu(fnode->ea_secno);
94 len = le32_to_cpu(fnode->ea_size_l);
95 ano = fnode_in_anode(fnode);
130 char *hpfs_get_ea(struct super_block *s, struct fnode *fnode, char *key, int *size)
137 struct extended_attribute *ea_end = fnode_end_ea(fnode);
138 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
150 a = le32_to_cpu(fnode->ea_secno);
151 len = le32_to_cpu(fnode->ea_size_l);
152 ano = fnode_in_anode(fnode);
190 void hpfs_set_ea(struct inode *inode, struct fnode *fnode, const char *key,
200 struct extended_attribute *ea_end = fnode_end_ea(fnode);
201 for (ea = fnode_ea(fnode); ea < ea_end; ea = next_ea(ea))
211 a = le32_to_cpu(fnode->ea_secno);
212 len = le32_to_cpu(fnode->ea_size_l);
213 ano = fnode_in_anode(fnode);
239 if (!le16_to_cpu(fnode->ea_offs)) {
240 /*if (le16_to_cpu(fnode->ea_size_s)) {
241 hpfs_error(s, "fnode %08x: ea_size_s == %03x, ea_offs == 0",
242 inode->i_ino, le16_to_cpu(fnode->ea_size_s));
245 fnode->ea_offs = cpu_to_le16(0xc4);
247 if (le16_to_cpu(fnode->ea_offs) < 0xc4 || le16_to_cpu(fnode->ea_offs) + le16_to_cpu(fnode->acl_size_s) + le16_to_cpu(fnode->ea_size_s) > 0x200) {
248 hpfs_error(s, "fnode %08lx: ea_offs == %03x, ea_size_s == %03x",
250 le16_to_cpu(fnode->ea_offs), le16_to_cpu(fnode->ea_size_s));
253 if ((le16_to_cpu(fnode->ea_size_s) || !le32_to_cpu(fnode->ea_size_l)) &&
254 le16_to_cpu(fnode->ea_offs) + le16_to_cpu(fnode->acl_size_s) + le16_to_cpu(fnode->ea_size_s) + strlen(key) + size + 5 <= 0x200) {
255 ea = fnode_end_ea(fnode);
262 fnode->ea_size_s = cpu_to_le16(le16_to_cpu(fnode->ea_size_s) + strlen(key) + size + 5);
267 if (le16_to_cpu(fnode->ea_size_s) && !le32_to_cpu(fnode->ea_size_l)) {
276 memcpy(data, fnode_ea(fnode), le16_to_cpu(fnode->ea_size_s));
277 fnode->ea_size_l = cpu_to_le32(le16_to_cpu(fnode->ea_size_s));
278 fnode->ea_size_s = cpu_to_le16(0);
279 fnode->ea_secno = cpu_to_le32(n);
280 fnode->flags &= ~FNODE_anode;
284 pos = le32_to_cpu(fnode->ea_size_l) + 5 + strlen(key) + size;
285 len = (le32_to_cpu(fnode->ea_size_l) + 511) >> 9;
291 fnode->ea_secno = cpu_to_le32(q);
292 fnode->flags &= ~FNODE_anode;
294 } else if (!fnode_in_anode(fnode)) {
295 if (hpfs_alloc_if_possible(s, le32_to_cpu(fnode->ea_secno) + len)) {
309 anode->u.external[0].disk_secno = cpu_to_le32(le32_to_cpu(fnode->ea_secno));
314 fnode->flags |= FNODE_anode;
315 fnode->ea_secno = cpu_to_le32(a_s);*/
323 if (!(b1 = hpfs_map_sector(s, le32_to_cpu(fnode->ea_secno) + i, &bh1, len - i - 1))) {
337 hpfs_free_sectors(s, le32_to_cpu(fnode->ea_secno), len);
338 fnode->ea_secno = cpu_to_le32(new_sec);
342 if (fnode_in_anode(fnode)) {
343 if (hpfs_add_sector_to_btree(s, le32_to_cpu(fnode->ea_secno),
355 if (hpfs_ea_write(s, le32_to_cpu(fnode->ea_secno), fnode_in_anode(fnode), le32_to_cpu(fnode->ea_size_l), 4, h)) goto bail;
356 if (hpfs_ea_write(s, le32_to_cpu(fnode->ea_secno), fnode_in_anode(fnode), le32_to_cpu(fnode->ea_size_l) + 4, h[1] + 1, key)) goto bail;
357 if (hpfs_ea_write(s, le32_to_cpu(fnode->ea_secno), fnode_in_anode(fnode), le32_to_cpu(fnode->ea_size_l) + 5 + h[1], size, data)) goto bail;
358 fnode->ea_size_l = cpu_to_le32(pos);
363 if (le32_to_cpu(fnode->ea_secno))
364 if (fnode_in_anode(fnode)) hpfs_truncate_btree(s, le32_to_cpu(fnode->ea_secno), 1, (le32_to_cpu(fnode->ea_size_l) + 511) >> 9);
365 else hpfs_free_sectors(s, le32_to_cpu(fnode->ea_secno) + ((le32_to_cpu(fnode->ea_size_l) + 511) >> 9), len - ((le32_to_cpu(fnode->ea_size_l) + 511) >> 9));
366 else fnode->ea_secno = fnode->ea_size_l = cpu_to_le32(0);