Lines Matching refs:dnode
11 static loff_t get_pos(struct dnode *d, struct hpfs_dirent *fde) in get_pos()
116 static struct hpfs_dirent *dnode_pre_last_de(struct dnode *d) in dnode_pre_last_de()
126 static struct hpfs_dirent *dnode_last_de(struct dnode *d) in dnode_last_de()
136 static void set_last_pointer(struct super_block *s, struct dnode *d, dnode_secno ptr) in set_last_pointer()
169 struct hpfs_dirent *hpfs_add_de(struct super_block *s, struct dnode *d, in hpfs_add_de()
200 static void hpfs_delete_de(struct super_block *s, struct dnode *d, in hpfs_delete_de()
211 static void fix_up_ptrs(struct super_block *s, struct dnode *d) in fix_up_ptrs()
219 struct dnode *dd; in fix_up_ptrs()
238 struct dnode *d, *ad, *rd, *nd = NULL; in hpfs_add_to_dnode()
388 struct dnode *d; in hpfs_add_dirent()
434 struct dnode *dnode; in move_to_top() local
445 if (!(dnode = hpfs_map_dnode(i->i_sb, dno, &qbh))) return 0; in move_to_top()
447 if (le32_to_cpu(dnode->up) != chk_up) { in move_to_top()
449 dno, chk_up, le32_to_cpu(dnode->up)); in move_to_top()
455 if (!(de = dnode_last_de(dnode))) { in move_to_top()
464 while (!(de = dnode_pre_last_de(dnode))) { in move_to_top()
465 dnode_secno up = le32_to_cpu(dnode->up); in move_to_top()
472 if (!(dnode = hpfs_map_dnode(i->i_sb, up, &qbh))) return 0; in move_to_top()
473 if (dnode->root_dnode) { in move_to_top()
478 de = dnode_last_de(dnode); in move_to_top()
484 le32_add_cpu(&dnode->first_free, -4); in move_to_top()
490 t = get_pos(dnode, de); in move_to_top()
500 hpfs_delete_de(i->i_sb, dnode, de); in move_to_top()
501 set_last_pointer(i->i_sb, dnode, ddno); in move_to_top()
519 struct dnode *dnode; in delete_empty_dnode() local
526 if (!(dnode = hpfs_map_dnode(i->i_sb, dno, &qbh))) return; in delete_empty_dnode()
527 if (le32_to_cpu(dnode->first_free) > 56) goto end; in delete_empty_dnode()
528 if (le32_to_cpu(dnode->first_free) == 52 || le32_to_cpu(dnode->first_free) == 56) { in delete_empty_dnode()
530 int root = dnode->root_dnode; in delete_empty_dnode()
531 up = le32_to_cpu(dnode->up); in delete_empty_dnode()
532 de = dnode_first_de(dnode); in delete_empty_dnode()
545 struct dnode *d1; in delete_empty_dnode()
570 if (!(dnode = hpfs_map_dnode(i->i_sb, up, &qbh))) return; in delete_empty_dnode()
572 de_end = dnode_end_de(dnode); in delete_empty_dnode()
573 for (de = dnode_first_de(dnode); de < de_end; de = de_next_de(de), p++) in delete_empty_dnode()
582 le32_add_cpu(&dnode->first_free, -4); in delete_empty_dnode()
584 (char *)dnode + le32_to_cpu(dnode->first_free) - (char *)de_next_de(de)); in delete_empty_dnode()
586 struct dnode *d1; in delete_empty_dnode()
596 …hpfs_error(i->i_sb, "delete_empty_dnode: dnode %08x, first_free == %03x", dno, le32_to_cpu(dnode->… in delete_empty_dnode()
603 struct dnode *d1; in delete_empty_dnode()
612 hpfs_delete_de(i->i_sb, dnode, de); in delete_empty_dnode()
629 struct hpfs_dirent *de_prev = dnode_pre_last_de(dnode); in delete_empty_dnode()
631 struct dnode *d1; in delete_empty_dnode()
678 hpfs_delete_de(i->i_sb, dnode, de_prev); in delete_empty_dnode()
682 le32_add_cpu(&dnode->first_free, 4); in delete_empty_dnode()
711 struct dnode *dnode = qbh->data; in hpfs_remove_dirent() local
720 if (depth && (de->down || (de == dnode_first_de(dnode) && de_next_de(de)->last))) { in hpfs_remove_dirent()
727 for_all_poss(i, hpfs_pos_del, (t = get_pos(dnode, de)) + 1, 1); in hpfs_remove_dirent()
728 hpfs_delete_de(i->i_sb, dnode, de); in hpfs_remove_dirent()
744 struct dnode *dnode; in hpfs_count_dnodes() local
756 if (!(dnode = hpfs_map_dnode(s, dno, &qbh))) return; in hpfs_count_dnodes()
757 if (hpfs_sb(s)->sb_chk) if (odno && odno != -1 && le32_to_cpu(dnode->up) != odno) in hpfs_count_dnodes()
758 …_dnodes: bad up pointer; dnode %08x, down %08x points to %08x", odno, dno, le32_to_cpu(dnode->up)); in hpfs_count_dnodes()
759 de = dnode_first_de(dnode); in hpfs_count_dnodes()
780 if ((de = de_next_de(de)) < dnode_end_de(dnode)) goto next_de; in hpfs_count_dnodes()
782 dno = le32_to_cpu(dnode->up); in hpfs_count_dnodes()
783 if (dnode->root_dnode) { in hpfs_count_dnodes()
795 struct quad_buffer_head *qbh, struct dnode **dn) in map_nth_dirent()
799 struct dnode *dnode; in map_nth_dirent() local
800 dnode = hpfs_map_dnode(s, dno, qbh); in map_nth_dirent()
801 if (!dnode) return NULL; in map_nth_dirent()
802 if (dn) *dn=dnode; in map_nth_dirent()
803 de = dnode_first_de(dnode); in map_nth_dirent()
804 de_end = dnode_end_de(dnode); in map_nth_dirent()
830 if (up && le32_to_cpu(((struct dnode *)qbh.data)->up) != up) in hpfs_de_as_down_as_possible()
831 …ointer; dnode %08x, down %08x points to %08x", up, d, le32_to_cpu(((struct dnode *)qbh.data)->up)); in hpfs_de_as_down_as_possible()
851 struct dnode *dnode; in map_pos_dirent() local
852 struct dnode *up_dnode; in map_pos_dirent()
858 if (!(de = map_nth_dirent(inode->i_sb, dno, pos, qbh, &dnode))) in map_pos_dirent()
862 if ((d = de_next_de(de)) < dnode_end_de(dnode)) { in map_pos_dirent()
878 if (dnode->root_dnode) goto bail; in map_pos_dirent()
880 if (!(up_dnode = hpfs_map_dnode(inode->i_sb, le32_to_cpu(dnode->up), &qbh0))) in map_pos_dirent()
888 "map_pos_dirent: pos crossed dnode boundary; dnode = %08x", le32_to_cpu(dnode->up)); in map_pos_dirent()
890 *posp = ((loff_t) le32_to_cpu(dnode->up) << 4) + c; in map_pos_dirent()
897 dno, le32_to_cpu(dnode->up)); in map_pos_dirent()
911 struct dnode *dnode; in map_dirent() local
920 if (!(dnode = hpfs_map_dnode(inode->i_sb, dno, qbh))) return NULL; in map_dirent()
922 de_end = dnode_end_de(dnode); in map_dirent()
923 for (de = dnode_first_de(dnode); de < de_end; de = de_next_de(de)) { in map_dirent()
951 struct dnode *dnode; in hpfs_remove_dtree() local
955 if (!(dnode = hpfs_map_dnode(s, dno, &qbh))) return; in hpfs_remove_dtree()
956 de = dnode_first_de(dnode); in hpfs_remove_dtree()
974 if (!(dnode = hpfs_map_dnode(s, dno = d1, &qbh))) return; in hpfs_remove_dtree()
975 de = dnode_first_de(dnode); in hpfs_remove_dtree()
1002 struct dnode *d; in map_fnode_dirent()