[djwong-xfs:defrag-freespace 364/365] fs/xfs/xfs_rtalloc.h:165:5: warning: no previous prototype for function 'xfs_rtallocate_extent'

From: kernel test robot
Date: Thu Aug 26 2021 - 06:45:19 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git defrag-freespace
head: 326d55bb2cd6af6a03ca05d6fb4cc6383132ad8c
commit: 028c5ae42fb7471df7ce18d583b454b55a786936 [364/365] xfs: fallocate free space into a file
config: x86_64-randconfig-a001-20210825 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project ea08c4cd1c0869ec5024a8bb3f5cdf06ab03ae83)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git/commit/?id=028c5ae42fb7471df7ce18d583b454b55a786936
git remote add djwong-xfs https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
git fetch --no-tags djwong-xfs defrag-freespace
git checkout 028c5ae42fb7471df7ce18d583b454b55a786936
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

In file included from fs/xfs/xfs_trace.c:38:
>> fs/xfs/xfs_rtalloc.h:165:5: warning: no previous prototype for function 'xfs_rtallocate_extent' [-Wmissing-prototypes]
int xfs_rtallocate_extent(struct xfs_trans *tp, xfs_rtblock_t bno,
^
fs/xfs/xfs_rtalloc.h:165:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int xfs_rtallocate_extent(struct xfs_trans *tp, xfs_rtblock_t bno,
^
static
1 warning generated.


vim +/xfs_rtallocate_extent +165 fs/xfs/xfs_rtalloc.h

86
87 /*
88 * Pick an extent for allocation at the start of a new realtime file.
89 * Use the sequence number stored in the atime field of the bitmap inode.
90 * Translate this to a fraction of the rtextents, and return the product
91 * of rtextents and the fraction.
92 * The fraction sequence is 0, 1/2, 1/4, 3/4, 1/8, ..., 7/8, 1/16, ...
93 */
94 int /* error */
95 xfs_rtpick_extent(
96 struct xfs_mount *mp, /* file system mount point */
97 struct xfs_trans *tp, /* transaction pointer */
98 xfs_extlen_t len, /* allocation length (rtextents) */
99 xfs_rtblock_t *pick); /* result rt extent */
100
101 int xfs_growfs_check_rt_maxlevels(struct xfs_mount *mp, xfs_rfsblock_t dblocks,
102 xfs_rfsblock_t rblocks);
103
104 /*
105 * Grow the realtime area of the filesystem.
106 */
107 int
108 xfs_growfs_rt(
109 struct xfs_mount *mp, /* file system mount structure */
110 xfs_growfs_rt_t *in); /* user supplied growfs struct */
111
112 /*
113 * From xfs_rtbitmap.c
114 */
115 int xfs_rtbuf_get(struct xfs_mount *mp, struct xfs_trans *tp,
116 xfs_rtblock_t block, int issum, struct xfs_buf **bpp);
117 int xfs_rtcheck_range(struct xfs_mount *mp, struct xfs_trans *tp,
118 xfs_rtblock_t start, xfs_extlen_t len, int val,
119 xfs_rtblock_t *new, int *stat);
120 int xfs_rtfind_back(struct xfs_mount *mp, struct xfs_trans *tp,
121 xfs_rtblock_t start, xfs_rtblock_t limit,
122 xfs_rtblock_t *rtblock);
123 int xfs_rtfind_forw(struct xfs_mount *mp, struct xfs_trans *tp,
124 xfs_rtblock_t start, xfs_rtblock_t limit,
125 xfs_rtblock_t *rtblock);
126 int xfs_rtmodify_range(struct xfs_mount *mp, struct xfs_trans *tp,
127 xfs_rtblock_t start, xfs_extlen_t len, int val);
128 int xfs_rtmodify_summary_int(struct xfs_mount *mp, struct xfs_trans *tp,
129 int log, xfs_rtblock_t bbno, int delta,
130 struct xfs_buf **rbpp, xfs_fsblock_t *rsb,
131 xfs_suminfo_t *sum);
132 int xfs_rtmodify_summary(struct xfs_mount *mp, struct xfs_trans *tp, int log,
133 xfs_rtblock_t bbno, int delta, struct xfs_buf **rbpp,
134 xfs_fsblock_t *rsb);
135 int xfs_rtfree_range(struct xfs_mount *mp, struct xfs_trans *tp,
136 xfs_rtblock_t start, xfs_extlen_t len,
137 struct xfs_buf **rbpp, xfs_fsblock_t *rsb);
138 int xfs_rtalloc_query_range(struct xfs_trans *tp,
139 const struct xfs_rtalloc_rec *low_rec,
140 const struct xfs_rtalloc_rec *high_rec,
141 xfs_rtalloc_query_range_fn fn, void *priv);
142 int xfs_rtalloc_query_all(struct xfs_trans *tp,
143 xfs_rtalloc_query_range_fn fn,
144 void *priv);
145 bool xfs_verify_rtbno(struct xfs_mount *mp, xfs_rtblock_t rtbno);
146 int xfs_rtalloc_extent_is_free(struct xfs_mount *mp, struct xfs_trans *tp,
147 xfs_rtblock_t start, xfs_extlen_t len,
148 bool *is_free);
149 int xfs_rtfile_convert_unwritten(struct xfs_inode *ip, loff_t pos,
150 uint64_t len);
151
152 #define XFS_RTLOCK_ALLOC (1 << 0) /* rt allocation */
153 #define XFS_RTLOCK_RMAP (1 << 1) /* rmap operations */
154 #define XFS_RTLOCK_REFCOUNT (1 << 2) /* refcount operations */
155 #define XFS_RTLOCK_ALL (XFS_RTLOCK_ALLOC | \
156 XFS_RTLOCK_RMAP | \
157 XFS_RTLOCK_REFCOUNT)
158
159 void xfs_rtlock(struct xfs_trans *tp, struct xfs_mount *mp,
160 unsigned int rtlock_flags);
161 void xfs_rtunlock(struct xfs_mount *mp, unsigned int lock_flags);
162 int xfs_rtalloc_find_freesp(struct xfs_mount *mp, xfs_rtblock_t *rtx,
163 xfs_rtblock_t end_rtx, xfs_extlen_t *len_rtx);
164 #else
> 165 int xfs_rtallocate_extent(struct xfs_trans *tp, xfs_rtblock_t bno,
166 xfs_extlen_t minlen, xfs_extlen_t maxlen, xfs_extlen_t *len,
167 int wasdel, xfs_extlen_t prod, xfs_rtblock_t *rtblock)
168 {
169 return ENOSYS;
170 }
171 # define xfs_rtfree_extent(t,b,l) (ENOSYS)
172 # define xfs_rtfree_blocks(t,rb,rl) (ENOSYS)
173 # define xfs_rtpick_extent(m,t,l,rb) (ENOSYS)
174 # define xfs_growfs_check_rt_maxlevels(m,d,r) (0)
175 # define xfs_growfs_rt(mp,in) (ENOSYS)
176 # define xfs_rtalloc_query_range(t,l,h,f,p) (ENOSYS)
177 # define xfs_rtalloc_query_all(t,f,p) (ENOSYS)
178 # define xfs_rtbuf_get(m,t,b,i,p) (ENOSYS)
179 # define xfs_verify_rtbno(m, r) (false)
180 # define xfs_rtalloc_extent_is_free(m,t,s,l,i) (ENOSYS)
181 static inline int /* error */
182 xfs_rtmount_init(
183 xfs_mount_t *mp) /* file system mount structure */
184 {
185 if (mp->m_sb.sb_rblocks == 0)
186 return 0;
187
188 xfs_warn(mp, "Not built with CONFIG_XFS_RT");
189 return -ENOSYS;
190 }
191 # define xfs_rt_resv_free(mp) ((void)0)
192 # define xfs_rt_resv_init(mp) (0)
193 # define xfs_rtmount_inodes(m) (((mp)->m_sb.sb_rblocks == 0)? 0 : (ENOSYS))
194 # define xfs_rtmount_dqattach(mp) (0)
195 # define xfs_rtunmount_inodes(m)
196 # define xfs_rtfile_convert_unwritten(ip, pos, len) (0)
197 # define xfs_rtlock(tp, mp, lock_flags) do { } while (0)
198 # define xfs_rtunlock(mp, lock_flags) do { } while (0)
199 # define xfs_rtalloc_find_freesp(mp, rtx, end_rtx, len_rtx) (-ENOSYS)
200 #endif /* CONFIG_XFS_RT */
201

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip