1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#ifndef __XFS_RTALLOC_H__
19#define __XFS_RTALLOC_H__
20
21
22
23struct xfs_mount;
24struct xfs_trans;
25
26#ifdef CONFIG_XFS_RT
27
28
29
30
31
32
33
34
35
36int
37xfs_rtallocate_extent(
38 struct xfs_trans *tp,
39 xfs_rtblock_t bno,
40 xfs_extlen_t minlen,
41 xfs_extlen_t maxlen,
42 xfs_extlen_t *len,
43 int wasdel,
44 xfs_extlen_t prod,
45 xfs_rtblock_t *rtblock);
46
47
48
49
50
51int
52xfs_rtfree_extent(
53 struct xfs_trans *tp,
54 xfs_rtblock_t bno,
55 xfs_extlen_t len);
56
57
58
59
60int
61xfs_rtmount_init(
62 struct xfs_mount *mp);
63void
64xfs_rtunmount_inodes(
65 struct xfs_mount *mp);
66
67
68
69
70
71int
72xfs_rtmount_inodes(
73 struct xfs_mount *mp);
74
75
76
77
78
79
80
81
82int
83xfs_rtpick_extent(
84 struct xfs_mount *mp,
85 struct xfs_trans *tp,
86 xfs_extlen_t len,
87 xfs_rtblock_t *pick);
88
89
90
91
92int
93xfs_growfs_rt(
94 struct xfs_mount *mp,
95 xfs_growfs_rt_t *in);
96
97
98
99
100int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
101 xfs_rtblock_t start, xfs_extlen_t len, int val,
102 xfs_rtblock_t *new, int *stat);
103int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp,
104 xfs_rtblock_t start, xfs_rtblock_t limit,
105 xfs_rtblock_t *rtblock);
106int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp,
107 xfs_rtblock_t start, xfs_rtblock_t limit,
108 xfs_rtblock_t *rtblock);
109int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp,
110 xfs_rtblock_t start, xfs_extlen_t len, int val);
111int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp,
112 int log, xfs_rtblock_t bbno, int delta,
113 xfs_buf_t **rbpp, xfs_fsblock_t *rsb,
114 xfs_suminfo_t *sum);
115int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log,
116 xfs_rtblock_t bbno, int delta, xfs_buf_t **rbpp,
117 xfs_fsblock_t *rsb);
118int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
119 xfs_rtblock_t start, xfs_extlen_t len,
120 struct xfs_buf **rbpp, xfs_fsblock_t *rsb);
121
122
123#else
124# define xfs_rtallocate_extent(t,b,min,max,l,f,p,rb) (ENOSYS)
125# define xfs_rtfree_extent(t,b,l) (ENOSYS)
126# define xfs_rtpick_extent(m,t,l,rb) (ENOSYS)
127# define xfs_growfs_rt(mp,in) (ENOSYS)
128static inline int
129xfs_rtmount_init(
130 xfs_mount_t *mp)
131{
132 if (mp->m_sb.sb_rblocks == 0)
133 return 0;
134
135 xfs_warn(mp, "Not built with CONFIG_XFS_RT");
136 return -ENOSYS;
137}
138# define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (ENOSYS))
139# define xfs_rtunmount_inodes(m)
140#endif
141
142#endif
143