Hi Zhou, Thank you for the patch! Yet something to improve: [auto build test ERROR on ceph-client/for-linus] [also build test ERROR on linus/master v6.0-rc7 next-20220928] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Zhou-jie/fs-ceph-Modify-the-return-value-to-void/20220927-165857 base: https://github.com/ceph/ceph-client.git for-linus config: hexagon-randconfig-r041-20220926 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920) 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://github.com/intel-lab-lkp/linux/commit/6c7163052ce6f51c217c650bc5592b7ef50b2280 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Zhou-jie/fs-ceph-Modify-the-return-value-to-void/20220927-165857 git checkout 6c7163052ce6f51c217c650bc5592b7ef50b2280 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash fs/ceph/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): >> fs/ceph/debugfs.c:281:38: error: incompatible function pointer types passing 'void (struct inode *, struct ceph_cap *, void *)' to parameter of type 'int (*)(struct inode *, struct ceph_cap *, void *)' [-Wincompatible-function-pointer-types] ceph_iterate_session_caps(session, caps_show_cb, s); ^~~~~~~~~~~~ fs/ceph/mds_client.h:540:16: note: passing argument to parameter 'cb' here int (*cb)(struct inode *, ^ >> fs/ceph/debugfs.c:349:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(mdsmap); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :79:1: note: expanded from here mdsmap_show ^~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:350:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(mdsc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :83:1: note: expanded from here mdsc_show ^~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:351:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(caps); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :87:1: note: expanded from here caps_show ^~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:352:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(mds_sessions); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :91:1: note: expanded from here mds_sessions_show ^~~~~~~~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:353:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(status); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :95:1: note: expanded from here status_show ^~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:354:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(metrics_file); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :99:1: note: expanded from here metrics_file_show ^~~~~~~~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:355:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(metrics_latency); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :103:1: note: expanded from here metrics_latency_show ^~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:356:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(metrics_size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :107:1: note: expanded from here metrics_size_show ^~~~~~~~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ fs/ceph/debugfs.c:357:1: error: incompatible function pointer types passing 'void (struct seq_file *, void *)' to parameter of type 'int (*)(struct seq_file *, void *)' [-Wincompatible-function-pointer-types] DEFINE_SHOW_ATTRIBUTE(metrics_caps); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/seq_file.h:199:27: note: expanded from macro 'DEFINE_SHOW_ATTRIBUTE' return single_open(file, __name ## _show, inode->i_private); \ ^~~~~~~~~~~~~~~ :111:1: note: expanded from here metrics_caps_show ^~~~~~~~~~~~~~~~~ include/linux/seq_file.h:166:38: note: passing argument to parameter here int single_open(struct file *, int (*)(struct seq_file *, void *), void *); ^ >> fs/ceph/debugfs.c:377:45: error: incompatible function pointer types passing 'void (void *, u64 *)' (aka 'void (void *, unsigned long long *)') to parameter of type 'int (*)(void *, u64 *)' (aka 'int (*)(void *, unsigned long long *)') [-Wincompatible-function-pointer-types] DEFINE_SIMPLE_ATTRIBUTE(congestion_kb_fops, congestion_kb_get, ^~~~~~~~~~~~~~~~~ include/linux/fs.h:3352:39: note: expanded from macro 'DEFINE_SIMPLE_ATTRIBUTE' return simple_attr_open(inode, file, __get, __set, __fmt); \ ^~~~~ include/linux/fs.h:3370:14: note: passing argument to parameter 'get' here int (*get)(void *, u64 *), int (*set)(void *, u64), ^ >> fs/ceph/debugfs.c:378:4: error: incompatible function pointer types passing 'void (void *, u64)' (aka 'void (void *, unsigned long long)') to parameter of type 'int (*)(void *, u64)' (aka 'int (*)(void *, unsigned long long)') [-Wincompatible-function-pointer-types] congestion_kb_set, "%llu\n"); ^~~~~~~~~~~~~~~~~ include/linux/fs.h:3352:46: note: expanded from macro 'DEFINE_SIMPLE_ATTRIBUTE' return simple_attr_open(inode, file, __get, __set, __fmt); \ ^~~~~ include/linux/fs.h:3370:41: note: passing argument to parameter 'set' here int (*get)(void *, u64 *), int (*set)(void *, u64), ^ 12 errors generated. vim +281 fs/ceph/debugfs.c ff4a80bf2d3f80 Jeff Layton 2019-04-24 254 6c7163052ce6f5 Zhou jie 2022-09-27 255 static void caps_show(struct seq_file *s, void *p) 76aa844d5b2fb8 Sage Weil 2009-10-06 256 { 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 257 struct ceph_fs_client *fsc = s->private; ff4a80bf2d3f80 Jeff Layton 2019-04-24 258 struct ceph_mds_client *mdsc = fsc->mdsc; ff4a80bf2d3f80 Jeff Layton 2019-04-24 259 int total, avail, used, reserved, min, i; 3a3430affce5de Jeff Layton 2019-11-20 260 struct cap_wait *cw; 76aa844d5b2fb8 Sage Weil 2009-10-06 261 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 262 ceph_reservation_status(fsc, &total, &avail, &used, &reserved, &min); 76aa844d5b2fb8 Sage Weil 2009-10-06 263 seq_printf(s, "total\t\t%d\n" 76aa844d5b2fb8 Sage Weil 2009-10-06 264 "avail\t\t%d\n" 76aa844d5b2fb8 Sage Weil 2009-10-06 265 "used\t\t%d\n" 85ccce43a3fc15 Sage Weil 2010-02-17 266 "reserved\t%d\n" ff4a80bf2d3f80 Jeff Layton 2019-04-24 267 "min\t\t%d\n\n", 85ccce43a3fc15 Sage Weil 2010-02-17 268 total, avail, used, reserved, min); 3a8ebe0b8b616c Yanhu Cao 2020-08-24 269 seq_printf(s, "ino mds issued implemented\n"); 3a8ebe0b8b616c Yanhu Cao 2020-08-24 270 seq_printf(s, "--------------------------------------------------\n"); ff4a80bf2d3f80 Jeff Layton 2019-04-24 271 ff4a80bf2d3f80 Jeff Layton 2019-04-24 272 mutex_lock(&mdsc->mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 273 for (i = 0; i < mdsc->max_sessions; i++) { ff4a80bf2d3f80 Jeff Layton 2019-04-24 274 struct ceph_mds_session *session; ff4a80bf2d3f80 Jeff Layton 2019-04-24 275 ff4a80bf2d3f80 Jeff Layton 2019-04-24 276 session = __ceph_lookup_mds_session(mdsc, i); ff4a80bf2d3f80 Jeff Layton 2019-04-24 277 if (!session) ff4a80bf2d3f80 Jeff Layton 2019-04-24 278 continue; ff4a80bf2d3f80 Jeff Layton 2019-04-24 279 mutex_unlock(&mdsc->mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 280 mutex_lock(&session->s_mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 @281 ceph_iterate_session_caps(session, caps_show_cb, s); ff4a80bf2d3f80 Jeff Layton 2019-04-24 282 mutex_unlock(&session->s_mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 283 ceph_put_mds_session(session); ff4a80bf2d3f80 Jeff Layton 2019-04-24 284 mutex_lock(&mdsc->mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 285 } ff4a80bf2d3f80 Jeff Layton 2019-04-24 286 mutex_unlock(&mdsc->mutex); ff4a80bf2d3f80 Jeff Layton 2019-04-24 287 3a3430affce5de Jeff Layton 2019-11-20 288 seq_printf(s, "\n\nWaiters:\n--------\n"); 3a3430affce5de Jeff Layton 2019-11-20 289 seq_printf(s, "tgid ino need want\n"); 3a3430affce5de Jeff Layton 2019-11-20 290 seq_printf(s, "-----------------------------------------------------\n"); 3a3430affce5de Jeff Layton 2019-11-20 291 3a3430affce5de Jeff Layton 2019-11-20 292 spin_lock(&mdsc->caps_list_lock); 3a3430affce5de Jeff Layton 2019-11-20 293 list_for_each_entry(cw, &mdsc->cap_wait_list, list) { ebce3eb2f7ef9f Jeff Layton 2020-08-18 294 seq_printf(s, "%-13d0x%-17llx%-17s%-17s\n", cw->tgid, cw->ino, 3a3430affce5de Jeff Layton 2019-11-20 295 ceph_cap_string(cw->need), 3a3430affce5de Jeff Layton 2019-11-20 296 ceph_cap_string(cw->want)); 3a3430affce5de Jeff Layton 2019-11-20 297 } 3a3430affce5de Jeff Layton 2019-11-20 298 spin_unlock(&mdsc->caps_list_lock); 3a3430affce5de Jeff Layton 2019-11-20 299 76aa844d5b2fb8 Sage Weil 2009-10-06 300 } 76aa844d5b2fb8 Sage Weil 2009-10-06 301 6c7163052ce6f5 Zhou jie 2022-09-27 302 static void mds_sessions_show(struct seq_file *s, void *ptr) 14ed97033dac4c John Spray 2014-09-12 303 { 14ed97033dac4c John Spray 2014-09-12 304 struct ceph_fs_client *fsc = s->private; 14ed97033dac4c John Spray 2014-09-12 305 struct ceph_mds_client *mdsc = fsc->mdsc; 14ed97033dac4c John Spray 2014-09-12 306 struct ceph_auth_client *ac = fsc->client->monc.auth; 14ed97033dac4c John Spray 2014-09-12 307 struct ceph_options *opt = fsc->client->options; 2c81ef286c42c5 Colin Ian King 2020-07-23 308 int mds; 14ed97033dac4c John Spray 2014-09-12 309 14ed97033dac4c John Spray 2014-09-12 310 mutex_lock(&mdsc->mutex); 14ed97033dac4c John Spray 2014-09-12 311 14ed97033dac4c John Spray 2014-09-12 312 /* The 'num' portion of an 'entity name' */ 14ed97033dac4c John Spray 2014-09-12 313 seq_printf(s, "global_id %llu\n", ac->global_id); 14ed97033dac4c John Spray 2014-09-12 314 14ed97033dac4c John Spray 2014-09-12 315 /* The -o name mount argument */ 14ed97033dac4c John Spray 2014-09-12 316 seq_printf(s, "name \"%s\"\n", opt->name ? opt->name : ""); 14ed97033dac4c John Spray 2014-09-12 317 14ed97033dac4c John Spray 2014-09-12 318 /* The list of MDS session rank+state */ 14ed97033dac4c John Spray 2014-09-12 319 for (mds = 0; mds < mdsc->max_sessions; mds++) { 14ed97033dac4c John Spray 2014-09-12 320 struct ceph_mds_session *session = 14ed97033dac4c John Spray 2014-09-12 321 __ceph_lookup_mds_session(mdsc, mds); 14ed97033dac4c John Spray 2014-09-12 322 if (!session) { 14ed97033dac4c John Spray 2014-09-12 323 continue; 14ed97033dac4c John Spray 2014-09-12 324 } 14ed97033dac4c John Spray 2014-09-12 325 mutex_unlock(&mdsc->mutex); 14ed97033dac4c John Spray 2014-09-12 326 seq_printf(s, "mds.%d %s\n", 14ed97033dac4c John Spray 2014-09-12 327 session->s_mds, 14ed97033dac4c John Spray 2014-09-12 328 ceph_session_state_name(session->s_state)); 14ed97033dac4c John Spray 2014-09-12 329 14ed97033dac4c John Spray 2014-09-12 330 ceph_put_mds_session(session); 14ed97033dac4c John Spray 2014-09-12 331 mutex_lock(&mdsc->mutex); 14ed97033dac4c John Spray 2014-09-12 332 } 14ed97033dac4c John Spray 2014-09-12 333 mutex_unlock(&mdsc->mutex); 14ed97033dac4c John Spray 2014-09-12 334 14ed97033dac4c John Spray 2014-09-12 335 } 14ed97033dac4c John Spray 2014-09-12 336 6c7163052ce6f5 Zhou jie 2022-09-27 337 static void status_show(struct seq_file *s, void *p) 247b1f19dbeb48 Xiubo Li 2020-11-11 338 { 247b1f19dbeb48 Xiubo Li 2020-11-11 339 struct ceph_fs_client *fsc = s->private; 247b1f19dbeb48 Xiubo Li 2020-11-11 340 struct ceph_entity_inst *inst = &fsc->client->msgr.inst; 247b1f19dbeb48 Xiubo Li 2020-11-11 341 struct ceph_entity_addr *client_addr = ceph_client_addr(fsc->client); 247b1f19dbeb48 Xiubo Li 2020-11-11 342 247b1f19dbeb48 Xiubo Li 2020-11-11 343 seq_printf(s, "instance: %s.%lld %s/%u\n", ENTITY_NAME(inst->name), 247b1f19dbeb48 Xiubo Li 2020-11-11 344 ceph_pr_addr(client_addr), le32_to_cpu(client_addr->nonce)); 247b1f19dbeb48 Xiubo Li 2020-11-11 345 seq_printf(s, "blocklisted: %s\n", fsc->blocklisted ? "true" : "false"); 247b1f19dbeb48 Xiubo Li 2020-11-11 346 247b1f19dbeb48 Xiubo Li 2020-11-11 347 } 247b1f19dbeb48 Xiubo Li 2020-11-11 348 072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 @349 DEFINE_SHOW_ATTRIBUTE(mdsmap); 072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 350 DEFINE_SHOW_ATTRIBUTE(mdsc); 072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 351 DEFINE_SHOW_ATTRIBUTE(caps); 072eaf3c0f0fd2 Ilya Dryomov 2020-01-28 352 DEFINE_SHOW_ATTRIBUTE(mds_sessions); 247b1f19dbeb48 Xiubo Li 2020-11-11 353 DEFINE_SHOW_ATTRIBUTE(status); cbed4ff76bbb80 Luís Henriques 2021-10-27 354 DEFINE_SHOW_ATTRIBUTE(metrics_file); cbed4ff76bbb80 Luís Henriques 2021-10-27 355 DEFINE_SHOW_ATTRIBUTE(metrics_latency); cbed4ff76bbb80 Luís Henriques 2021-10-27 356 DEFINE_SHOW_ATTRIBUTE(metrics_size); cbed4ff76bbb80 Luís Henriques 2021-10-27 357 DEFINE_SHOW_ATTRIBUTE(metrics_caps); 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 358 76aa844d5b2fb8 Sage Weil 2009-10-06 359 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 360 /* 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 361 * debugfs 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 362 */ 6c7163052ce6f5 Zhou jie 2022-09-27 363 static void congestion_kb_set(void *data, u64 val) 2baba25019ec56 Yehuda Sadeh 2009-12-18 364 { 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 365 struct ceph_fs_client *fsc = (struct ceph_fs_client *)data; 2baba25019ec56 Yehuda Sadeh 2009-12-18 366 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 367 fsc->mount_options->congestion_kb = (int)val; 2baba25019ec56 Yehuda Sadeh 2009-12-18 368 } 2baba25019ec56 Yehuda Sadeh 2009-12-18 369 6c7163052ce6f5 Zhou jie 2022-09-27 370 static void congestion_kb_get(void *data, u64 *val) 2baba25019ec56 Yehuda Sadeh 2009-12-18 371 { 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 372 struct ceph_fs_client *fsc = (struct ceph_fs_client *)data; 2baba25019ec56 Yehuda Sadeh 2009-12-18 373 3d14c5d2b6e15c Yehuda Sadeh 2010-04-06 374 *val = (u64)fsc->mount_options->congestion_kb; 2baba25019ec56 Yehuda Sadeh 2009-12-18 375 } 2baba25019ec56 Yehuda Sadeh 2009-12-18 376 2baba25019ec56 Yehuda Sadeh 2009-12-18 @377 DEFINE_SIMPLE_ATTRIBUTE(congestion_kb_fops, congestion_kb_get, 2baba25019ec56 Yehuda Sadeh 2009-12-18 @378 congestion_kb_set, "%llu\n"); 2baba25019ec56 Yehuda Sadeh 2009-12-18 379 76aa844d5b2fb8 Sage Weil 2009-10-06 380 -- 0-DAY CI Kernel Test Service https://01.org/lkp