Hi Jaegeuk, [auto build test WARNING on: f2fs/dev] [also build test WARNING on: v4.4-rc3 next-20151127] url: https://github.com/0day-ci/linux/commits/Jaegeuk-Kim/f2fs-avoid-deadlock-in-f2fs_shrink_extent_tree/20151201-085538 base: https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs dev config: x86_64-randconfig-s2-12010958 (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All warnings (new ones prefixed by >>): In file included from include/linux/linkage.h:4:0, from include/linux/fs.h:4, from fs/f2fs/extent_cache.c:14: fs/f2fs/extent_cache.c: In function 'f2fs_shrink_extent_tree': fs/f2fs/extent_cache.c:618:27: warning: passing argument 1 of 'down_write_trylock' from incompatible pointer type [-Wincompatible-pointer-types] if (down_write_trylock(&et->lock)) { ^ include/linux/compiler.h:147:28: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> fs/f2fs/extent_cache.c:618:4: note: in expansion of macro 'if' if (down_write_trylock(&et->lock)) { ^ In file included from include/linux/fs.h:20:0, from fs/f2fs/extent_cache.c:14: include/linux/rwsem.h:123:12: note: expected 'struct rw_semaphore *' but argument is of type 'rwlock_t * {aka struct <anonymous> *}' extern int down_write_trylock(struct rw_semaphore *sem); ^ In file included from include/linux/linkage.h:4:0, from include/linux/fs.h:4, from fs/f2fs/extent_cache.c:14: fs/f2fs/extent_cache.c:618:27: warning: passing argument 1 of 'down_write_trylock' from incompatible pointer type [-Wincompatible-pointer-types] if (down_write_trylock(&et->lock)) { ^ include/linux/compiler.h:147:40: note: in definition of macro '__trace_if' if (__builtin_constant_p((cond)) ? !!(cond) : \ ^ >> fs/f2fs/extent_cache.c:618:4: note: in expansion of macro 'if' if (down_write_trylock(&et->lock)) { ^ In file included from include/linux/fs.h:20:0, from fs/f2fs/extent_cache.c:14: include/linux/rwsem.h:123:12: note: expected 'struct rw_semaphore *' but argument is of type 'rwlock_t * {aka struct <anonymous> *}' extern int down_write_trylock(struct rw_semaphore *sem); ^ In file included from include/linux/linkage.h:4:0, from include/linux/fs.h:4, from fs/f2fs/extent_cache.c:14: fs/f2fs/extent_cache.c:618:27: warning: passing argument 1 of 'down_write_trylock' from incompatible pointer type [-Wincompatible-pointer-types] if (down_write_trylock(&et->lock)) { ^ include/linux/compiler.h:158:16: note: in definition of macro '__trace_if' ______r = !!(cond); \ ^ >> fs/f2fs/extent_cache.c:618:4: note: in expansion of macro 'if' if (down_write_trylock(&et->lock)) { ^ In file included from include/linux/fs.h:20:0, from fs/f2fs/extent_cache.c:14: include/linux/rwsem.h:123:12: note: expected 'struct rw_semaphore *' but argument is of type 'rwlock_t * {aka struct <anonymous> *}' extern int down_write_trylock(struct rw_semaphore *sem); ^ vim +/if +618 fs/f2fs/extent_cache.c 602 } 603 spin_unlock(&sbi->extent_lock); 604 605 /* 606 * reset ino for searching victims from beginning of global extent tree. 607 */ 608 ino = F2FS_ROOT_INO(sbi); 609 610 while ((found = radix_tree_gang_lookup(root, 611 (void **)treevec, ino, EXT_TREE_VEC_SIZE))) { 612 unsigned i; 613 614 ino = treevec[found - 1]->ino + 1; 615 for (i = 0; i < found; i++) { 616 struct extent_tree *et = treevec[i]; 617 > 618 if (down_write_trylock(&et->lock)) { 619 node_cnt += __free_extent_tree(sbi, et, false); 620 write_unlock(&et->lock); 621 } 622 623 if (node_cnt + tree_cnt >= nr_shrink) 624 goto unlock_out; 625 } 626 } --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: Binary data