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 xfs_alloctype_t type,
44 int wasdel,
45 xfs_extlen_t prod,
46 xfs_rtblock_t *rtblock);
47
48
49
50
51
52int
53xfs_rtfree_extent(
54 struct xfs_trans *tp,
55 xfs_rtblock_t bno,
56 xfs_extlen_t len);
57
58
59
60
61int
62xfs_rtmount_init(
63 struct xfs_mount *mp);
64void
65xfs_rtunmount_inodes(
66 struct xfs_mount *mp);
67
68
69
70
71
72int
73xfs_rtmount_inodes(
74 struct xfs_mount *mp);
75
76
77
78
79
80
81
82
83int
84xfs_rtpick_extent(
85 struct xfs_mount *mp,
86 struct xfs_trans *tp,
87 xfs_extlen_t len,
88 xfs_rtblock_t *pick);
89
90
91
92
93int
94xfs_growfs_rt(
95 struct xfs_mount *mp,
96 xfs_growfs_rt_t *in);
97
98
99
100
101int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp,
102 xfs_rtblock_t block, int issum, struct xfs_buf **bpp);
103int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
104 xfs_rtblock_t start, xfs_extlen_t len, int val,
105 xfs_rtblock_t *new, int *stat);
106int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp,
107 xfs_rtblock_t start, xfs_rtblock_t limit,
108 xfs_rtblock_t *rtblock);
109int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp,
110 xfs_rtblock_t start, xfs_rtblock_t limit,
111 xfs_rtblock_t *rtblock);
112int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp,
113 xfs_rtblock_t start, xfs_extlen_t len, int val);
114int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp,
115 int log, xfs_rtblock_t bbno, int delta,
116 xfs_buf_t **rbpp, xfs_fsblock_t *rsb,
117 xfs_suminfo_t *sum);
118int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log,
119 xfs_rtblock_t bbno, int delta, xfs_buf_t **rbpp,
120 xfs_fsblock_t *rsb);
121int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
122 xfs_rtblock_t start, xfs_extlen_t len,
123 struct xfs_buf **rbpp, xfs_fsblock_t *rsb);
124
125
126#else
127# define xfs_rtallocate_extent(t,b,min,max,l,a,f,p,rb) (ENOSYS)
128# define xfs_rtfree_extent(t,b,l) (ENOSYS)
129# define xfs_rtpick_extent(m,t,l,rb) (ENOSYS)
130# define xfs_growfs_rt(mp,in) (ENOSYS)
131static inline int
132xfs_rtmount_init(
133 xfs_mount_t *mp)
134{
135 if (mp->m_sb.sb_rblocks == 0)
136 return 0;
137
138 xfs_warn(mp, "Not built with CONFIG_XFS_RT");
139 return -ENOSYS;
140}
141# define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (ENOSYS))
142# define xfs_rtunmount_inodes(m)
143#endif
144
145#endif
146