Hi Gabriel,
I love your patch! Yet something to improve:
[auto build test ERROR on ext3/fsnotify]
[also build test ERROR on linus/master v5.13-rc2 next-20210521]
[cannot apply to ext4/dev]
[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]
url:
https://github.com/0day-ci/linux/commits/Gabriel-Krisman-Bertazi/File-sys...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs.git fsnotify
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
#
https://github.com/0day-ci/linux/commit/a68dabe209f26c50d700b7be44603351f...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Gabriel-Krisman-Bertazi/File-system-wide-monitoring/20210522-235132
git checkout a68dabe209f26c50d700b7be44603351f95221cd
# save the attached .config to linux build tree
make W=1 ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>):
> samples/fanotify/fs-monitor.c:23:36: error: field 'hdr'
has incomplete type
23 | struct fanotify_event_info_header hdr;
| ^~~
samples/fanotify/fs-monitor.c: In function 'handle_notifications':
> samples/fanotify/fs-monitor.c:55:26: warning: format
'%llx' expects argument of type 'long long unsigned int', but argument 2
has type '__kernel_fsid_t' {aka 'struct <anonymous>'} [-Wformat=]
55 | printf(" fsid: %llx\n", error->fsid);
| ~~~^ ~~~~~~~~~~~
| | |
| | __kernel_fsid_t {aka struct
<anonymous>}
| long long unsigned int
samples/fanotify/fs-monitor.c: In function 'main':
> samples/fanotify/fs-monitor.c:76:37: error:
'FAN_MARK_FILESYSTEM' undeclared (first use in this function); did you mean
'FAN_MARK_FLUSH'?
76 | if (fanotify_mark(fd,
FAN_MARK_ADD|FAN_MARK_FILESYSTEM,
| ^~~~~~~~~~~~~~~~~~~
| FAN_MARK_FLUSH
samples/fanotify/fs-monitor.c:76:37: note: each undeclared identifier is reported only
once for each function it appears in
vim +/hdr +23 samples/fanotify/fs-monitor.c
21
22 struct fanotify_event_info_error {
23 struct fanotify_event_info_header hdr;
24 int error;
25 __kernel_fsid_t fsid;
26 unsigned long inode;
27 __u32 error_count;
28 };
29 #endif
30
31 static void handle_notifications(char *buffer, int len)
32 {
33 struct fanotify_event_metadata *metadata;
34 struct fanotify_event_info_error *error;
35
36 for (metadata = (struct fanotify_event_metadata *) buffer;
37 FAN_EVENT_OK(metadata, len); metadata = FAN_EVENT_NEXT(metadata, len)) {
38 if (!(metadata->mask == FAN_ERROR)) {
39 printf("unexpected FAN MARK: %llx\n", metadata->mask);
40 continue;
41 } else if (metadata->fd != FAN_NOFD) {
42 printf("Unexpected fd (!= FAN_NOFD)\n");
43 continue;
44 }
45
46 printf("FAN_ERROR found len=%d\n", metadata->event_len);
47
48 error = (struct fanotify_event_info_error *) (metadata+1);
49 if (error->hdr.info_type == FAN_EVENT_INFO_TYPE_ERROR) {
50 printf("unknown record: %d\n", error->hdr.info_type);
51 continue;
52 }
53
54 printf(" Generic Error Record: len=%d\n", error->hdr.len);
55 printf(" fsid: %llx\n", error->fsid);
56 printf(" error: %d\n", error->error);
57 printf(" inode: %lu\n", error->inode);
58 printf(" error_count: %d\n", error->error_count);
59 }
60 }
61
62 int main(int argc, char **argv)
63 {
64 int fd;
65 char buffer[BUFSIZ];
66
67 if (argc < 2) {
68 printf("Missing path argument\n");
69 return 1;
70 }
71
72 fd = fanotify_init(FAN_CLASS_NOTIF, O_RDONLY);
73 if (fd < 0)
74 errx(1, "fanotify_init");
75
76 if (fanotify_mark(fd, FAN_MARK_ADD|FAN_MARK_FILESYSTEM,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org