From: Greg Kroah-Hartman Date: Tue, 13 Aug 2024 10:30:10 +0000 (+0200) Subject: 5.10-stable patches X-Git-Tag: v6.1.105~23 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=49da3af3d17fe4e802cc336e100adb89aeee839d;p=thirdparty%2Fkernel%2Fstable-queue.git 5.10-stable patches added patches: add-gitignore-file-for-samples-fanotify-subdirectory.patch samples-add-fs-error-monitoring-example.patch samples-make-fs-monitor-depend-on-libc-and-headers.patch --- diff --git a/queue-5.10/add-gitignore-file-for-samples-fanotify-subdirectory.patch b/queue-5.10/add-gitignore-file-for-samples-fanotify-subdirectory.patch new file mode 100644 index 00000000000..b24489e162f --- /dev/null +++ b/queue-5.10/add-gitignore-file-for-samples-fanotify-subdirectory.patch @@ -0,0 +1,31 @@ +From stable+bounces-61762-greg=kroah.com@vger.kernel.org Thu Jul 25 17:33:12 2024 +From: cel@kernel.org +Date: Thu, 25 Jul 2024 11:32:29 -0400 +Subject: Add gitignore file for samples/fanotify/ subdirectory +To: amir73il@gmail.com, krisman@collabora.com +Cc: gregkh@linuxfoundation.org, jack@suse.cz, sashal@kernel.org, stable@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, tytso@mit.edu, alexey.makhalov@broadcom.com, vasavi.sirnapalli@broadcom.com, florian.fainelli@broadcom.com, Linus Torvalds +Message-ID: <20240725153229.13407-4-cel@kernel.org> + +From: Linus Torvalds + +[ Upstream commit c107fb9b4f8338375b3e865c3d2c1d98ccb3a95a ] + +Commit 5451093081db ("samples: Add fs error monitoring example") added a +new sample program, but didn't teach git to ignore the new generated +files, causing unnecessary noise from 'git status' after a full build. + +Add the 'fs-monitor' sample executable to the .gitignore for this +subdirectory to silence it all again. + +Signed-off-by: Linus Torvalds +Signed-off-by: Chuck Lever +Signed-off-by: Greg Kroah-Hartman +--- + samples/fanotify/.gitignore | 1 + + 1 file changed, 1 insertion(+) + create mode 100644 samples/fanotify/.gitignore + +--- /dev/null ++++ b/samples/fanotify/.gitignore +@@ -0,0 +1 @@ ++fs-monitor diff --git a/queue-5.10/samples-add-fs-error-monitoring-example.patch b/queue-5.10/samples-add-fs-error-monitoring-example.patch new file mode 100644 index 00000000000..6ca574edd50 --- /dev/null +++ b/queue-5.10/samples-add-fs-error-monitoring-example.patch @@ -0,0 +1,212 @@ +From stable+bounces-61760-greg=kroah.com@vger.kernel.org Thu Jul 25 17:33:01 2024 +From: cel@kernel.org +Date: Thu, 25 Jul 2024 11:32:27 -0400 +Subject: samples: Add fs error monitoring example +To: amir73il@gmail.com, krisman@collabora.com +Cc: gregkh@linuxfoundation.org, jack@suse.cz, sashal@kernel.org, stable@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, tytso@mit.edu, alexey.makhalov@broadcom.com, vasavi.sirnapalli@broadcom.com, florian.fainelli@broadcom.com +Message-ID: <20240725153229.13407-2-cel@kernel.org> + +From: Gabriel Krisman Bertazi + +[ Upstream commit 5451093081db6ca1a708d149e11cfd219800bc4c ] + +Introduce an example of a FAN_FS_ERROR fanotify user to track filesystem +errors. + +Link: https://lore.kernel.org/r/20211025192746.66445-31-krisman@collabora.com +Reviewed-by: Amir Goldstein +Reviewed-by: Jan Kara +Signed-off-by: Gabriel Krisman Bertazi +Signed-off-by: Jan Kara +[ cel: adjusted to squelch a missing file warning on v5.10.y ] +Signed-off-by: Chuck Lever +Signed-off-by: Greg Kroah-Hartman +--- + samples/Kconfig | 8 ++ + samples/Makefile | 1 + samples/fanotify/Makefile | 5 + + samples/fanotify/fs-monitor.c | 142 ++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 156 insertions(+) + create mode 100644 samples/fanotify/Makefile + create mode 100644 samples/fanotify/fs-monitor.c + +--- a/samples/Kconfig ++++ b/samples/Kconfig +@@ -120,6 +120,14 @@ config SAMPLE_CONNECTOR + with it. + See also Documentation/driver-api/connector.rst + ++config SAMPLE_FANOTIFY_ERROR ++ bool "Build fanotify error monitoring sample" ++ depends on FANOTIFY ++ help ++ When enabled, this builds an example code that uses the ++ FAN_FS_ERROR fanotify mechanism to monitor filesystem ++ errors. ++ + config SAMPLE_HIDRAW + bool "hidraw sample" + depends on CC_CAN_LINK && HEADERS_INSTALL +--- a/samples/Makefile ++++ b/samples/Makefile +@@ -5,6 +5,7 @@ subdir-$(CONFIG_SAMPLE_AUXDISPLAY) += au + subdir-$(CONFIG_SAMPLE_ANDROID_BINDERFS) += binderfs + obj-$(CONFIG_SAMPLE_CONFIGFS) += configfs/ + obj-$(CONFIG_SAMPLE_CONNECTOR) += connector/ ++obj-$(CONFIG_SAMPLE_FANOTIFY_ERROR) += fanotify/ + subdir-$(CONFIG_SAMPLE_HIDRAW) += hidraw + obj-$(CONFIG_SAMPLE_HW_BREAKPOINT) += hw_breakpoint/ + obj-$(CONFIG_SAMPLE_KDB) += kdb/ +--- /dev/null ++++ b/samples/fanotify/Makefile +@@ -0,0 +1,5 @@ ++# SPDX-License-Identifier: GPL-2.0-only ++userprogs-always-y += fs-monitor ++ ++userccflags += -I usr/include -Wall ++ +--- /dev/null ++++ b/samples/fanotify/fs-monitor.c +@@ -0,0 +1,142 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Copyright 2021, Collabora Ltd. ++ */ ++ ++#define _GNU_SOURCE ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifndef FAN_FS_ERROR ++#define FAN_FS_ERROR 0x00008000 ++#define FAN_EVENT_INFO_TYPE_ERROR 5 ++ ++struct fanotify_event_info_error { ++ struct fanotify_event_info_header hdr; ++ __s32 error; ++ __u32 error_count; ++}; ++#endif ++ ++#ifndef FILEID_INO32_GEN ++#define FILEID_INO32_GEN 1 ++#endif ++ ++#ifndef FILEID_INVALID ++#define FILEID_INVALID 0xff ++#endif ++ ++static void print_fh(struct file_handle *fh) ++{ ++ int i; ++ uint32_t *h = (uint32_t *) fh->f_handle; ++ ++ printf("\tfh: "); ++ for (i = 0; i < fh->handle_bytes; i++) ++ printf("%hhx", fh->f_handle[i]); ++ printf("\n"); ++ ++ printf("\tdecoded fh: "); ++ if (fh->handle_type == FILEID_INO32_GEN) ++ printf("inode=%u gen=%u\n", h[0], h[1]); ++ else if (fh->handle_type == FILEID_INVALID && !fh->handle_bytes) ++ printf("Type %d (Superblock error)\n", fh->handle_type); ++ else ++ printf("Type %d (Unknown)\n", fh->handle_type); ++ ++} ++ ++static void handle_notifications(char *buffer, int len) ++{ ++ struct fanotify_event_metadata *event = ++ (struct fanotify_event_metadata *) buffer; ++ struct fanotify_event_info_header *info; ++ struct fanotify_event_info_error *err; ++ struct fanotify_event_info_fid *fid; ++ int off; ++ ++ for (; FAN_EVENT_OK(event, len); event = FAN_EVENT_NEXT(event, len)) { ++ ++ if (event->mask != FAN_FS_ERROR) { ++ printf("unexpected FAN MARK: %llx\n", event->mask); ++ goto next_event; ++ } ++ ++ if (event->fd != FAN_NOFD) { ++ printf("Unexpected fd (!= FAN_NOFD)\n"); ++ goto next_event; ++ } ++ ++ printf("FAN_FS_ERROR (len=%d)\n", event->event_len); ++ ++ for (off = sizeof(*event) ; off < event->event_len; ++ off += info->len) { ++ info = (struct fanotify_event_info_header *) ++ ((char *) event + off); ++ ++ switch (info->info_type) { ++ case FAN_EVENT_INFO_TYPE_ERROR: ++ err = (struct fanotify_event_info_error *) info; ++ ++ printf("\tGeneric Error Record: len=%d\n", ++ err->hdr.len); ++ printf("\terror: %d\n", err->error); ++ printf("\terror_count: %d\n", err->error_count); ++ break; ++ ++ case FAN_EVENT_INFO_TYPE_FID: ++ fid = (struct fanotify_event_info_fid *) info; ++ ++ printf("\tfsid: %x%x\n", ++ fid->fsid.val[0], fid->fsid.val[1]); ++ print_fh((struct file_handle *) &fid->handle); ++ break; ++ ++ default: ++ printf("\tUnknown info type=%d len=%d:\n", ++ info->info_type, info->len); ++ } ++ } ++next_event: ++ printf("---\n\n"); ++ } ++} ++ ++int main(int argc, char **argv) ++{ ++ int fd; ++ ++ char buffer[BUFSIZ]; ++ ++ if (argc < 2) { ++ printf("Missing path argument\n"); ++ return 1; ++ } ++ ++ fd = fanotify_init(FAN_CLASS_NOTIF|FAN_REPORT_FID, O_RDONLY); ++ if (fd < 0) ++ errx(1, "fanotify_init"); ++ ++ if (fanotify_mark(fd, FAN_MARK_ADD|FAN_MARK_FILESYSTEM, ++ FAN_FS_ERROR, AT_FDCWD, argv[1])) { ++ errx(1, "fanotify_mark"); ++ } ++ ++ while (1) { ++ int n = read(fd, buffer, BUFSIZ); ++ ++ if (n < 0) ++ errx(1, "read"); ++ ++ handle_notifications(buffer, n); ++ } ++ ++ return 0; ++} diff --git a/queue-5.10/samples-make-fs-monitor-depend-on-libc-and-headers.patch b/queue-5.10/samples-make-fs-monitor-depend-on-libc-and-headers.patch new file mode 100644 index 00000000000..8b170a7a107 --- /dev/null +++ b/queue-5.10/samples-make-fs-monitor-depend-on-libc-and-headers.patch @@ -0,0 +1,42 @@ +From stable+bounces-61761-greg=kroah.com@vger.kernel.org Thu Jul 25 17:33:08 2024 +From: cel@kernel.org +Date: Thu, 25 Jul 2024 11:32:28 -0400 +Subject: samples: Make fs-monitor depend on libc and headers +To: amir73il@gmail.com, krisman@collabora.com +Cc: gregkh@linuxfoundation.org, jack@suse.cz, sashal@kernel.org, stable@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, tytso@mit.edu, alexey.makhalov@broadcom.com, vasavi.sirnapalli@broadcom.com, florian.fainelli@broadcom.com, Guenter Roeck +Message-ID: <20240725153229.13407-3-cel@kernel.org> + +From: Gabriel Krisman Bertazi + +[ Upstream commit 8fc70b3a142f97f7859bf052151df896933d2586 ] + +Prevent build errors when headers or libc are not available, such as on +kernel build bots, like the below: + +samples/fanotify/fs-monitor.c:7:10: fatal error: errno.h: No such file +or directory + 7 | #include + | ^~~~~~~~~ + +Link: https://lore.kernel.org/r/87fsslasgz.fsf@collabora.com +Suggested-by: Guenter Roeck +Tested-by: Guenter Roeck +Signed-off-by: Gabriel Krisman Bertazi +Signed-off-by: Jan Kara +Signed-off-by: Chuck Lever +Signed-off-by: Greg Kroah-Hartman +--- + samples/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/samples/Kconfig ++++ b/samples/Kconfig +@@ -122,7 +122,7 @@ config SAMPLE_CONNECTOR + + config SAMPLE_FANOTIFY_ERROR + bool "Build fanotify error monitoring sample" +- depends on FANOTIFY ++ depends on FANOTIFY && CC_CAN_LINK && HEADERS_INSTALL + help + When enabled, this builds an example code that uses the + FAN_FS_ERROR fanotify mechanism to monitor filesystem diff --git a/queue-5.10/series b/queue-5.10/series index e2aca3d44f7..023e2691363 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -342,3 +342,6 @@ mptcp-mib-count-mpj-with-backup-flag.patch mptcp-export-local_address.patch mptcp-pm-fix-backup-support-in-signal-endpoints.patch ipv6-fix-source-address-selection-with-route-leak.patch +samples-add-fs-error-monitoring-example.patch +samples-make-fs-monitor-depend-on-libc-and-headers.patch +add-gitignore-file-for-samples-fanotify-subdirectory.patch