Re: [PATCH v2] generic/791: don't run if kernel misses FANOTIFY

"Darrick J. Wong" <[email protected]>
Newsgroups org.kernel.vger.fstests
Message-ID <20260521144730.GR9568@frogsfrogsfrogs>
On Thu, May 21, 2026 at 10:26:46AM +0200, Andrey Albershteyn wrote:
> If FANOTIFY=no in the kernel, then fs-monitor will fail to start. Fix
> fs-monitor error codes to detect and skip the test on "Function not
> implemented" code.
> 
> Signed-off-by: Andrey Albershteyn <[email protected]>
> ---
> Changes from v1:
> - Remove returning of errno
> - Instead of checking for error code add new -c argument to fs-monitor

Looks good to me now!
Reviewed-by: "Darrick J. Wong" <[email protected]>

--D

> 
> ---
>  src/fs-monitor.c  | 19 ++++++++++++++++++-
>  tests/generic/791 |  3 +++
>  2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/src/fs-monitor.c b/src/fs-monitor.c
> index 0cf09677a3ef..dd91a5d7f623 100644
> --- a/src/fs-monitor.c
> +++ b/src/fs-monitor.c
> @@ -117,6 +117,8 @@ next_event:
>  int main(int argc, char **argv)
>  {
>  	int fd;
> +	int opt;
> +	int check = 0;
>  
>  	char buffer[BUFSIZ];
>  
> @@ -125,14 +127,29 @@ int main(int argc, char **argv)
>  		return 1;
>  	}
>  
> +	while ((opt = getopt(argc, argv, "c")) != -1) {
> +		switch (opt) {
> +		case 'c':
> +			check = 1;
> +			break;
> +		default:
> +			fprintf(stderr, "Usage: %s [-c] path\n",
> +				argv[0]);
> +			exit(EXIT_FAILURE);
> +		}
> +	}
> +
>  	fd = fanotify_init(FAN_CLASS_NOTIF|FAN_REPORT_FID, O_RDONLY);
> +	if (check)
> +		exit(fd < 0);
> +
>  	if (fd < 0) {
>  		perror("fanotify_init");
>  		errx(1, "fanotify_init");
>  	}
>  
>  	if (fanotify_mark(fd, FAN_MARK_ADD|FAN_MARK_FILESYSTEM,
> -			  FAN_FS_ERROR, AT_FDCWD, argv[1])) {
> +			  FAN_FS_ERROR, AT_FDCWD, argv[optind])) {
>  		perror("fanotify_mark");
>  		errx(1, "fanotify_mark");
>  	}
> diff --git a/tests/generic/791 b/tests/generic/791
> index 90242292cba2..edefbb7767c3 100755
> --- a/tests/generic/791
> +++ b/tests/generic/791
> @@ -65,6 +65,9 @@ _dmerror_mount >> $seqres.full 2>&1
>  
>  test $FSTYP = xfs && _xfs_force_bdev data $SCRATCH_MNT
>  
> +$here/src/fs-monitor -c $SCRATCH_MNT &> /dev/null || \
> +		_notrun "fanotify too old"
> +
>  # Write a file with 4 file blocks worth of data, figure out the LBA to target
>  victim=$SCRATCH_MNT/a
>  file_blksz=$(_get_file_block_size $SCRATCH_MNT)
> -- 
> 2.51.2
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.