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(struct xfs_mount *mp, struct xfs_trans *tp, int log,
115 xfs_rtblock_t bbno, int delta, xfs_buf_t **rbpp,
116 xfs_fsblock_t *rsb);
117int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
118 xfs_rtblock_t start, xfs_extlen_t len,
119 struct xfs_buf **rbpp, xfs_fsblock_t *rsb);
120
121
122#else
123# define xfs_rtallocate_extent(t,b,min,max,l,a,f,p,rb) (ENOSYS)
124# define xfs_rtfree_extent(t,b,l) (ENOSYS)
125# define xfs_rtpick_extent(m,t,l,rb) (ENOSYS)
126# define xfs_growfs_rt(mp,in) (ENOSYS)
127static inline int
128xfs_rtmount_init(
129 xfs_mount_t *mp)
130{
131 if (mp->m_sb.sb_rblocks == 0)
132 return 0;
133
134 xfs_warn(mp, "Not built with CONFIG_XFS_RT");
135 return ENOSYS;
136}
137# define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (ENOSYS))
138# define xfs_rtunmount_inodes(m)
139#endif
140
141#endif
142