* [vfs:work.dcache 15/23] fs/dcache.c:3188:3: error: implicit declaration of function 'prefetch'
@ 2018-03-13 10:21 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2018-03-13 10:21 UTC (permalink / raw)
To: Al Viro; +Cc: kbuild-all, linux-fsdevel
[-- Attachment #1: Type: text/plain, Size: 8843 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.dcache
head: 1550f79a78b3956a5026f8a7c576de2c1d11f509
commit: 5ee99702db84422642826a7b44895e0d7593de0d [15/23] dcache.c: trim includes
config: score-spct6600_defconfig (attached as .config)
compiler: score-elf-gcc (GCC) 4.9.4
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 5ee99702db84422642826a7b44895e0d7593de0d
# save the attached .config to linux build tree
make.cross ARCH=score
Note: the vfs/work.dcache HEAD 1550f79a78b3956a5026f8a7c576de2c1d11f509 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
fs/dcache.c: In function 'prepend_path':
>> fs/dcache.c:3188:3: error: implicit declaration of function 'prefetch' [-Werror=implicit-function-declaration]
prefetch(parent);
^
cc1: some warnings being treated as errors
vim +/prefetch +3188 fs/dcache.c
cdd16d026 Miklos Szeredi 2008-06-23 3121
^1da177e4 Linus Torvalds 2005-04-16 3122 /**
208898c17 Randy Dunlap 2010-11-18 3123 * prepend_path - Prepend path string to a buffer
9d1bc6013 Miklos Szeredi 2008-03-27 3124 * @path: the dentry/vfsmount to report
02125a826 Al Viro 2011-12-05 3125 * @root: root vfsmnt/dentry
f2eb6575d Miklos Szeredi 2010-08-10 3126 * @buffer: pointer to the end of the buffer
f2eb6575d Miklos Szeredi 2010-08-10 3127 * @buflen: pointer to buffer length
^1da177e4 Linus Torvalds 2005-04-16 3128 *
181299772 Waiman Long 2013-09-12 3129 * The function will first try to write out the pathname without taking any
181299772 Waiman Long 2013-09-12 3130 * lock other than the RCU read lock to make sure that dentries won't go away.
181299772 Waiman Long 2013-09-12 3131 * It only checks the sequence number of the global rename_lock as any change
181299772 Waiman Long 2013-09-12 3132 * in the dentry's d_seq will be preceded by changes in the rename_lock
181299772 Waiman Long 2013-09-12 3133 * sequence number. If the sequence number had been changed, it will restart
181299772 Waiman Long 2013-09-12 3134 * the whole pathname back-tracing sequence again by taking the rename_lock.
181299772 Waiman Long 2013-09-12 3135 * In this case, there is no need to take the RCU read lock as the recursive
181299772 Waiman Long 2013-09-12 3136 * parent pointer references will keep the dentry chain alive as long as no
181299772 Waiman Long 2013-09-12 3137 * rename operation is performed.
^1da177e4 Linus Torvalds 2005-04-16 3138 */
02125a826 Al Viro 2011-12-05 3139 static int prepend_path(const struct path *path,
02125a826 Al Viro 2011-12-05 3140 const struct path *root,
f2eb6575d Miklos Szeredi 2010-08-10 3141 char **buffer, int *buflen)
^1da177e4 Linus Torvalds 2005-04-16 3142 {
ede4cebce Al Viro 2013-11-13 3143 struct dentry *dentry;
ede4cebce Al Viro 2013-11-13 3144 struct vfsmount *vfsmnt;
ede4cebce Al Viro 2013-11-13 3145 struct mount *mnt;
f2eb6575d Miklos Szeredi 2010-08-10 3146 int error = 0;
48a066e72 Al Viro 2013-09-29 3147 unsigned seq, m_seq = 0;
232d2d60a Waiman Long 2013-09-09 3148 char *bptr;
232d2d60a Waiman Long 2013-09-09 3149 int blen;
6092d0481 Ram Pai 2008-03-27 3150
48f5ec21d Al Viro 2013-09-09 3151 rcu_read_lock();
48a066e72 Al Viro 2013-09-29 3152 restart_mnt:
48a066e72 Al Viro 2013-09-29 3153 read_seqbegin_or_lock(&mount_lock, &m_seq);
48a066e72 Al Viro 2013-09-29 3154 seq = 0;
4ec6c2aea Li Zhong 2013-11-13 3155 rcu_read_lock();
232d2d60a Waiman Long 2013-09-09 3156 restart:
232d2d60a Waiman Long 2013-09-09 3157 bptr = *buffer;
232d2d60a Waiman Long 2013-09-09 3158 blen = *buflen;
48a066e72 Al Viro 2013-09-29 3159 error = 0;
ede4cebce Al Viro 2013-11-13 3160 dentry = path->dentry;
ede4cebce Al Viro 2013-11-13 3161 vfsmnt = path->mnt;
ede4cebce Al Viro 2013-11-13 3162 mnt = real_mount(vfsmnt);
232d2d60a Waiman Long 2013-09-09 3163 read_seqbegin_or_lock(&rename_lock, &seq);
f2eb6575d Miklos Szeredi 2010-08-10 3164 while (dentry != root->dentry || vfsmnt != root->mnt) {
^1da177e4 Linus Torvalds 2005-04-16 3165 struct dentry * parent;
^1da177e4 Linus Torvalds 2005-04-16 3166
^1da177e4 Linus Torvalds 2005-04-16 3167 if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
66702eb59 Mark Rutland 2017-10-23 3168 struct mount *parent = READ_ONCE(mnt->mnt_parent);
cde93be45 Eric W. Biederman 2015-08-15 3169 /* Escaped? */
cde93be45 Eric W. Biederman 2015-08-15 3170 if (dentry != vfsmnt->mnt_root) {
cde93be45 Eric W. Biederman 2015-08-15 3171 bptr = *buffer;
cde93be45 Eric W. Biederman 2015-08-15 3172 blen = *buflen;
cde93be45 Eric W. Biederman 2015-08-15 3173 error = 3;
cde93be45 Eric W. Biederman 2015-08-15 3174 break;
cde93be45 Eric W. Biederman 2015-08-15 3175 }
552ce544e Linus Torvalds 2007-02-13 3176 /* Global root? */
48a066e72 Al Viro 2013-09-29 3177 if (mnt != parent) {
66702eb59 Mark Rutland 2017-10-23 3178 dentry = READ_ONCE(mnt->mnt_mountpoint);
48a066e72 Al Viro 2013-09-29 3179 mnt = parent;
0714a5338 Al Viro 2011-11-24 3180 vfsmnt = &mnt->mnt;
^1da177e4 Linus Torvalds 2005-04-16 3181 continue;
^1da177e4 Linus Torvalds 2005-04-16 3182 }
02125a826 Al Viro 2011-12-05 3183 if (!error)
f7a99c5b7 Al Viro 2012-06-09 3184 error = is_mounted(vfsmnt) ? 1 : 2;
232d2d60a Waiman Long 2013-09-09 3185 break;
232d2d60a Waiman Long 2013-09-09 3186 }
232d2d60a Waiman Long 2013-09-09 3187 parent = dentry->d_parent;
232d2d60a Waiman Long 2013-09-09 @3188 prefetch(parent);
232d2d60a Waiman Long 2013-09-09 3189 error = prepend_name(&bptr, &blen, &dentry->d_name);
232d2d60a Waiman Long 2013-09-09 3190 if (error)
232d2d60a Waiman Long 2013-09-09 3191 break;
232d2d60a Waiman Long 2013-09-09 3192
232d2d60a Waiman Long 2013-09-09 3193 dentry = parent;
232d2d60a Waiman Long 2013-09-09 3194 }
48f5ec21d Al Viro 2013-09-09 3195 if (!(seq & 1))
48f5ec21d Al Viro 2013-09-09 3196 rcu_read_unlock();
48f5ec21d Al Viro 2013-09-09 3197 if (need_seqretry(&rename_lock, seq)) {
48f5ec21d Al Viro 2013-09-09 3198 seq = 1;
232d2d60a Waiman Long 2013-09-09 3199 goto restart;
48f5ec21d Al Viro 2013-09-09 3200 }
48f5ec21d Al Viro 2013-09-09 3201 done_seqretry(&rename_lock, seq);
4ec6c2aea Li Zhong 2013-11-13 3202
4ec6c2aea Li Zhong 2013-11-13 3203 if (!(m_seq & 1))
4ec6c2aea Li Zhong 2013-11-13 3204 rcu_read_unlock();
48a066e72 Al Viro 2013-09-29 3205 if (need_seqretry(&mount_lock, m_seq)) {
48a066e72 Al Viro 2013-09-29 3206 m_seq = 1;
48a066e72 Al Viro 2013-09-29 3207 goto restart_mnt;
48a066e72 Al Viro 2013-09-29 3208 }
48a066e72 Al Viro 2013-09-29 3209 done_seqretry(&mount_lock, m_seq);
232d2d60a Waiman Long 2013-09-09 3210
232d2d60a Waiman Long 2013-09-09 3211 if (error >= 0 && bptr == *buffer) {
232d2d60a Waiman Long 2013-09-09 3212 if (--blen < 0)
232d2d60a Waiman Long 2013-09-09 3213 error = -ENAMETOOLONG;
232d2d60a Waiman Long 2013-09-09 3214 else
232d2d60a Waiman Long 2013-09-09 3215 *--bptr = '/';
232d2d60a Waiman Long 2013-09-09 3216 }
232d2d60a Waiman Long 2013-09-09 3217 *buffer = bptr;
232d2d60a Waiman Long 2013-09-09 3218 *buflen = blen;
7ea600b53 Al Viro 2013-03-26 3219 return error;
f2eb6575d Miklos Szeredi 2010-08-10 3220 }
be285c712 Andreas Gruenbacher 2008-06-16 3221
:::::: The code at line 3188 was first introduced by commit
:::::: 232d2d60aa5469bb097f55728f65146bd49c1d25 dcache: Translating dentry into pathname without taking rename_lock
:::::: TO: Waiman Long <Waiman.Long@hp.com>
:::::: CC: Al Viro <viro@zeniv.linux.org.uk>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 8174 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-03-13 10:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-13 10:21 [vfs:work.dcache 15/23] fs/dcache.c:3188:3: error: implicit declaration of function 'prefetch' kbuild test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).