hc
2024-05-10 cde9070d9970eef1f7ec2360586c802a16230ad8
kernel/fs/xfs/libxfs/xfs_dir2.h
....@@ -1,4 +1,4 @@
1
-// SPDX-License-Identifier: GPL-2.0
1
+/* SPDX-License-Identifier: GPL-2.0 */
22 /*
33 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
44 * All Rights Reserved.
....@@ -18,6 +18,8 @@
1818 struct xfs_dir2_data_hdr;
1919 struct xfs_dir2_data_entry;
2020 struct xfs_dir2_data_unused;
21
+struct xfs_dir3_icfree_hdr;
22
+struct xfs_dir3_icleaf_hdr;
2123
2224 extern struct xfs_name xfs_name_dotdot;
2325
....@@ -25,85 +27,6 @@
2527 * Convert inode mode to directory entry filetype
2628 */
2729 extern unsigned char xfs_mode_to_ftype(int mode);
28
-
29
-/*
30
- * directory operations vector for encode/decode routines
31
- */
32
-struct xfs_dir_ops {
33
- int (*sf_entsize)(struct xfs_dir2_sf_hdr *hdr, int len);
34
- struct xfs_dir2_sf_entry *
35
- (*sf_nextentry)(struct xfs_dir2_sf_hdr *hdr,
36
- struct xfs_dir2_sf_entry *sfep);
37
- uint8_t (*sf_get_ftype)(struct xfs_dir2_sf_entry *sfep);
38
- void (*sf_put_ftype)(struct xfs_dir2_sf_entry *sfep,
39
- uint8_t ftype);
40
- xfs_ino_t (*sf_get_ino)(struct xfs_dir2_sf_hdr *hdr,
41
- struct xfs_dir2_sf_entry *sfep);
42
- void (*sf_put_ino)(struct xfs_dir2_sf_hdr *hdr,
43
- struct xfs_dir2_sf_entry *sfep,
44
- xfs_ino_t ino);
45
- xfs_ino_t (*sf_get_parent_ino)(struct xfs_dir2_sf_hdr *hdr);
46
- void (*sf_put_parent_ino)(struct xfs_dir2_sf_hdr *hdr,
47
- xfs_ino_t ino);
48
-
49
- int (*data_entsize)(int len);
50
- uint8_t (*data_get_ftype)(struct xfs_dir2_data_entry *dep);
51
- void (*data_put_ftype)(struct xfs_dir2_data_entry *dep,
52
- uint8_t ftype);
53
- __be16 * (*data_entry_tag_p)(struct xfs_dir2_data_entry *dep);
54
- struct xfs_dir2_data_free *
55
- (*data_bestfree_p)(struct xfs_dir2_data_hdr *hdr);
56
-
57
- xfs_dir2_data_aoff_t data_dot_offset;
58
- xfs_dir2_data_aoff_t data_dotdot_offset;
59
- xfs_dir2_data_aoff_t data_first_offset;
60
- size_t data_entry_offset;
61
-
62
- struct xfs_dir2_data_entry *
63
- (*data_dot_entry_p)(struct xfs_dir2_data_hdr *hdr);
64
- struct xfs_dir2_data_entry *
65
- (*data_dotdot_entry_p)(struct xfs_dir2_data_hdr *hdr);
66
- struct xfs_dir2_data_entry *
67
- (*data_first_entry_p)(struct xfs_dir2_data_hdr *hdr);
68
- struct xfs_dir2_data_entry *
69
- (*data_entry_p)(struct xfs_dir2_data_hdr *hdr);
70
- struct xfs_dir2_data_unused *
71
- (*data_unused_p)(struct xfs_dir2_data_hdr *hdr);
72
-
73
- int leaf_hdr_size;
74
- void (*leaf_hdr_to_disk)(struct xfs_dir2_leaf *to,
75
- struct xfs_dir3_icleaf_hdr *from);
76
- void (*leaf_hdr_from_disk)(struct xfs_dir3_icleaf_hdr *to,
77
- struct xfs_dir2_leaf *from);
78
- int (*leaf_max_ents)(struct xfs_da_geometry *geo);
79
- struct xfs_dir2_leaf_entry *
80
- (*leaf_ents_p)(struct xfs_dir2_leaf *lp);
81
-
82
- int node_hdr_size;
83
- void (*node_hdr_to_disk)(struct xfs_da_intnode *to,
84
- struct xfs_da3_icnode_hdr *from);
85
- void (*node_hdr_from_disk)(struct xfs_da3_icnode_hdr *to,
86
- struct xfs_da_intnode *from);
87
- struct xfs_da_node_entry *
88
- (*node_tree_p)(struct xfs_da_intnode *dap);
89
-
90
- int free_hdr_size;
91
- void (*free_hdr_to_disk)(struct xfs_dir2_free *to,
92
- struct xfs_dir3_icfree_hdr *from);
93
- void (*free_hdr_from_disk)(struct xfs_dir3_icfree_hdr *to,
94
- struct xfs_dir2_free *from);
95
- int (*free_max_bests)(struct xfs_da_geometry *geo);
96
- __be16 * (*free_bests_p)(struct xfs_dir2_free *free);
97
- xfs_dir2_db_t (*db_to_fdb)(struct xfs_da_geometry *geo,
98
- xfs_dir2_db_t db);
99
- int (*db_to_fdindex)(struct xfs_da_geometry *geo,
100
- xfs_dir2_db_t db);
101
-};
102
-
103
-extern const struct xfs_dir_ops *
104
- xfs_dir_get_ops(struct xfs_mount *mp, struct xfs_inode *dp);
105
-extern const struct xfs_dir_ops *
106
- xfs_nondir_get_ops(struct xfs_mount *mp, struct xfs_inode *dp);
10730
10831 /*
10932 * Generic directory interface routines
....@@ -143,10 +66,7 @@
14366 extern int xfs_dir2_shrink_inode(struct xfs_da_args *args, xfs_dir2_db_t db,
14467 struct xfs_buf *bp);
14568
146
-extern void xfs_dir2_data_freescan_int(struct xfs_da_geometry *geo,
147
- const struct xfs_dir_ops *ops,
148
- struct xfs_dir2_data_hdr *hdr, int *loghead);
149
-extern void xfs_dir2_data_freescan(struct xfs_inode *dp,
69
+extern void xfs_dir2_data_freescan(struct xfs_mount *mp,
15070 struct xfs_dir2_data_hdr *hdr, int *loghead);
15171 extern void xfs_dir2_data_log_entry(struct xfs_da_args *args,
15272 struct xfs_buf *bp, struct xfs_dir2_data_entry *dep);
....@@ -324,7 +244,8 @@
324244 #define XFS_READDIR_BUFSIZE (32768)
325245
326246 unsigned char xfs_dir3_get_dtype(struct xfs_mount *mp, uint8_t filetype);
327
-void *xfs_dir3_data_endp(struct xfs_da_geometry *geo,
247
+unsigned int xfs_dir3_data_end_offset(struct xfs_da_geometry *geo,
328248 struct xfs_dir2_data_hdr *hdr);
249
+bool xfs_dir2_namecheck(const void *name, size_t length);
329250
330251 #endif /* __XFS_DIR2_H__ */