Hi Amir, I love your patch! Perhaps something to improve: [auto build test WARNING on ext3/fsnotify] [also build test WARNING on nfsd/nfsd-next driver-core/driver-core-testing linus/master v5.8-rc4 next-20200707] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Amir-Goldstein/fsnotify-Rearrange-fast-path-to-minimise-overhead-when-there-is-no-watcher/20200708-191525 base: https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git fsnotify config: i386-randconfig-r015-20200708 (attached as .config) compiler: gcc-9 (Debian 9.3.0-14) 9.3.0 reproduce (this is a W=1 build): # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): >> fs/notify/fanotify/fanotify.c:347:24: warning: no previous prototype for 'fanotify_alloc_path_event' [-Wmissing-prototypes] 347 | struct fanotify_event *fanotify_alloc_path_event(const struct path *path, | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> fs/notify/fanotify/fanotify.c:363:24: warning: no previous prototype for 'fanotify_alloc_perm_event' [-Wmissing-prototypes] 363 | struct fanotify_event *fanotify_alloc_perm_event(const struct path *path, | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> fs/notify/fanotify/fanotify.c:381:24: warning: no previous prototype for 'fanotify_alloc_fid_event' [-Wmissing-prototypes] 381 | struct fanotify_event *fanotify_alloc_fid_event(struct inode *id, | ^~~~~~~~~~~~~~~~~~~~~~~~ >> fs/notify/fanotify/fanotify.c:398:24: warning: no previous prototype for 'fanotify_alloc_name_event' [-Wmissing-prototypes] 398 | struct fanotify_event *fanotify_alloc_name_event(struct inode *id, | ^~~~~~~~~~~~~~~~~~~~~~~~~ vim +/fanotify_alloc_path_event +347 fs/notify/fanotify/fanotify.c 346 > 347 struct fanotify_event *fanotify_alloc_path_event(const struct path *path, 348 gfp_t gfp) 349 { 350 struct fanotify_path_event *pevent; 351 352 pevent = kmem_cache_alloc(fanotify_path_event_cachep, gfp); 353 if (!pevent) 354 return NULL; 355 356 pevent->fae.type = FANOTIFY_EVENT_TYPE_PATH; 357 pevent->path = *path; 358 path_get(path); 359 360 return &pevent->fae; 361 } 362 > 363 struct fanotify_event *fanotify_alloc_perm_event(const struct path *path, 364 gfp_t gfp) 365 { 366 struct fanotify_perm_event *pevent; 367 368 pevent = kmem_cache_alloc(fanotify_perm_event_cachep, gfp); 369 if (!pevent) 370 return NULL; 371 372 pevent->fae.type = FANOTIFY_EVENT_TYPE_PATH_PERM; 373 pevent->response = 0; 374 pevent->state = FAN_EVENT_INIT; 375 pevent->path = *path; 376 path_get(path); 377 378 return &pevent->fae; 379 } 380 > 381 struct fanotify_event *fanotify_alloc_fid_event(struct inode *id, 382 __kernel_fsid_t *fsid, 383 gfp_t gfp) 384 { 385 struct fanotify_fid_event *ffe; 386 387 ffe = kmem_cache_alloc(fanotify_fid_event_cachep, gfp); 388 if (!ffe) 389 return NULL; 390 391 ffe->fae.type = FANOTIFY_EVENT_TYPE_FID; 392 ffe->fsid = *fsid; 393 fanotify_encode_fh(&ffe->object_fh, id, gfp); 394 395 return &ffe->fae; 396 } 397 > 398 struct fanotify_event *fanotify_alloc_name_event(struct inode *id, 399 __kernel_fsid_t *fsid, 400 const struct qstr *file_name, 401 gfp_t gfp) 402 { 403 struct fanotify_name_event *fne; 404 405 fne = kmalloc(sizeof(*fne) + file_name->len + 1, gfp); 406 if (!fne) 407 return NULL; 408 409 fne->fae.type = FANOTIFY_EVENT_TYPE_FID_NAME; 410 fne->fsid = *fsid; 411 fanotify_encode_fh(&fne->dir_fh, id, gfp); 412 fne->name_len = file_name->len; 413 strcpy(fne->name, file_name->name); 414 415 return &fne->fae; 416 } 417 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org