tree:
https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
fscache-iter
head: 59f33c90ef6c1a75d4af75e5f60d98c0d965b6a2
commit: 667b9011d562075c1d4e831862efa31f2f47fba0 [21/61] fscache: Replace the object
management state machine
config: i386-randconfig-a016-20200521 (attached as .config)
compiler: gcc-4.9 (Ubuntu 4.9.3-13ubuntu2) 4.9.3
reproduce (this is a W=1 build):
git checkout 667b9011d562075c1d4e831862efa31f2f47fba0
# save the attached .config to linux build tree
make ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/linux/export.h:43:0,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/linux/list.h:9,
from include/linux/module.h:12,
from fs/fscache/obj.c:12:
fs/fscache/obj.c: In function 'fscache_drop_object':
> fs/fscache/obj.c:278:27: warning: comparison is always false due
to limited range of data type [-Wtype-limits]
ASSERTCMP(cookie->stage, ==,
FSCACHE_COOKIE_STAGE_DEAD);
^
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
> fs/fscache/obj.c:278:2: note: in expansion of macro
'ASSERTCMP'
ASSERTCMP(cookie->stage, ==, FSCACHE_COOKIE_STAGE_DEAD);
^
vim +278 fs/fscache/obj.c
267
268 /*
269 * Drop an object's attachments
270 */
271 void fscache_drop_object(struct fscache_cookie *cookie,
272 struct fscache_object *object,
273 bool invalidate)
274 {
275 struct fscache_object *parent = object->parent;
276 struct fscache_cache *cache = object->cache;
277
278 ASSERTCMP(cookie->stage, ==, FSCACHE_COOKIE_STAGE_DEAD);
279
280 _enter("{OBJ%x,%d},%u",
281 object->debug_id, object->n_children, invalidate);
282
283 if (!invalidate &&
284 test_bit(FSCACHE_OBJECT_NEEDS_UPDATE, &object->flags)) {
285 _debug("final update");
286 fscache_do_update_object(object);
287 }
288
289 spin_lock(&cache->object_list_lock);
290 list_del_init(&object->cache_link);
291 spin_unlock(&cache->object_list_lock);
292
293 fscache_do_drop_object(cache, object, invalidate);
294
295 /* The parent object wants to know when all it dependents have gone */
296 if (parent) {
297 _debug("release parent OBJ%x {%d}",
298 parent->debug_id, parent->n_children);
299
300 spin_lock(&parent->lock);
301 parent->n_children--;
302 if (parent->n_children == 0)
303 wake_up_var(&parent->n_children);
304 spin_unlock(&parent->lock);
305 object->parent = NULL;
306 fscache_do_put_object(parent, fscache_obj_put_drop_child);
307 }
308
309 fscache_do_put_object(object, fscache_obj_put_drop_obj);
310 fscache_stat(&fscache_n_object_dead);
311 _leave("");
312 }
313
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org