tree:
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
reserve-rt-metadata-space
head: 51f17deded84ae5863d2220a0a7c152ef4a8bbb2
commit: 31164e29ae636984bee9f34577909e4f74fc0cd0 [64/196] xfs: repair damaged symlinks
config: nds32-randconfig-r006-20210115 (attached as .config)
compiler: nds32le-linux-gcc (GCC) 9.3.0
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/comm...
git remote add djwong-xfs
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git
git fetch --no-tags djwong-xfs reserve-rt-metadata-space
git checkout 31164e29ae636984bee9f34577909e4f74fc0cd0
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nds32
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from fs/xfs/scrub/symlink_repair.c:22:
fs/xfs/xfs_quota.h: In function 'xfs_trans_unreserve_quota_nblks':
fs/xfs/xfs_quota.h:176:39: error: passing argument 1 of
'xfs_trans_reserve_quota_nblks' from incompatible pointer type
[-Werror=incompatible-pointer-types]
176 | return xfs_trans_reserve_quota_nblks(&tp, ip, -nblks, -ninos, flags,
| ^~~
| |
| struct xfs_trans **
fs/xfs/xfs_quota.h:132:67: note: expected 'struct xfs_trans *' but argument is
of type 'struct xfs_trans **'
132 | static inline int xfs_trans_reserve_quota_nblks(struct xfs_trans *tp,
| ~~~~~~~~~~~~~~~~~~^~
fs/xfs/xfs_quota.h: At top level:
fs/xfs/xfs_quota.h:181:1: error: redefinition of 'xfs_quota_reserve_blkres'
181 | xfs_quota_reserve_blkres(struct xfs_inode *ip, int64_t nblks,
| ^~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs/xfs_quota.h:145:19: note: previous definition of
'xfs_quota_reserve_blkres' was here
145 | static inline int xfs_quota_reserve_blkres(struct xfs_inode *ip,
| ^~~~~~~~~~~~~~~~~~~~~~~~
fs/xfs/xfs_quota.h: In function 'xfs_quota_reserve_blkres':
fs/xfs/xfs_quota.h:186:39: error: passing argument 1 of
'xfs_trans_reserve_quota_nblks' from incompatible pointer type
[-Werror=incompatible-pointer-types]
186 | return xfs_trans_reserve_quota_nblks(&tp, ip, nblks, 0, flags, NULL);
| ^~~
| |
| struct xfs_trans **
fs/xfs/xfs_quota.h:132:67: note: expected 'struct xfs_trans *' but argument is
of type 'struct xfs_trans **'
132 | static inline int xfs_trans_reserve_quota_nblks(struct xfs_trans *tp,
| ~~~~~~~~~~~~~~~~~~^~
fs/xfs/scrub/symlink_repair.c: In function 'xrep_symlink_reinitialize':
> fs/xfs/scrub/symlink_repair.c:213:40: error: passing argument 1
of 'xfs_trans_reserve_quota_nblks' from incompatible pointer type
[-Werror=incompatible-pointer-types]
213 | error =
xfs_trans_reserve_quota_nblks(&sc->tp, sc->ip, resblks, 0,
| ^~~~~~~
| |
| struct xfs_trans **
In file included from fs/xfs/scrub/symlink_repair.c:22:
fs/xfs/xfs_quota.h:132:67: note: expected 'struct xfs_trans *' but argument is
of type 'struct xfs_trans **'
132 | static inline int xfs_trans_reserve_quota_nblks(struct xfs_trans *tp,
| ~~~~~~~~~~~~~~~~~~^~
cc1: some warnings being treated as errors
vim +/xfs_trans_reserve_quota_nblks +213 fs/xfs/scrub/symlink_repair.c
185
186 /*
187 * Reinitialize a link target. Caller must ensure the inode is joined to
188 * the transaction.
189 */
190 STATIC int
191 xrep_symlink_reinitialize(
192 struct xfs_scrub *sc)
193 {
194 xfs_fsblock_t fs_blocks;
195 unsigned int target_len;
196 unsigned int resblks;
197 unsigned int quota_flags = XFS_QMOPT_RES_REGBLKS;
198 bool quota_retry = false;
199 int error;
200
201 /* How many blocks do we need? */
202 target_len = strlen(sc->buf);
203 ASSERT(target_len != 0);
204 if (target_len == 0 || target_len > XFS_SYMLINK_MAXLEN)
205 return -EFSCORRUPTED;
206
207 if (sc->flags & XCHK_TRY_HARDER)
208 quota_flags |= XFS_QMOPT_FORCE_RES;
209
210 /* Set up to reinitialize the target. */
211 fs_blocks = xfs_symlink_blocks(sc->mp, target_len);
212 resblks = XFS_SYMLINK_SPACE_RES(sc->mp, target_len, fs_blocks);
213 error = xfs_trans_reserve_quota_nblks(&sc->tp, sc->ip,
resblks, 0,
214 quota_flags, "a_retry);
215 if (error)
216 return error;
217 if (quota_retry) {
218 /* Release everything and try harder. */
219 return -EDEADLOCK;
220 }
221
222 /* Try to write the new target back out. */
223 error = xfs_symlink_write_target(sc->tp, sc->ip, sc->buf, target_len,
224 fs_blocks, resblks);
225 if (error)
226 return error;
227
228 /* Finish up any block mapping activities. */
229 return xfs_defer_finish(&sc->tp);
230 }
231
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org