xref: /freebsd/sys/contrib/openzfs/config/kernel-super-set-uuid.m4 (revision 34f9f5680c9d5d5138e427ba3aeab0138cec3882)
1dnl # SPDX-License-Identifier: CDDL-1.0
2dnl #
3dnl # 6.9 API change
4dnl # super_set_uuid() was added to set sb->s_uuid and sb->s_uuid_len.
5dnl # The VFS serves the FS_IOC_GETFSUUID ioctl on all filesystems that
6dnl # have a non-zero sb->s_uuid_len, before it calls the ioctl handler
7dnl # of the filesystem.  On older kernels ZFS sets sb->s_uuid directly
8dnl # and serves the ioctl itself, in zpl_ioctl().
9dnl #
10AC_DEFUN([ZFS_AC_KERNEL_SRC_SUPER_SET_UUID], [
11	ZFS_LINUX_TEST_SRC([super_set_uuid], [
12		#include <linux/fs.h>
13	], [
14		static struct super_block sb;
15		static const u8 uuid[16];
16
17		super_set_uuid(&sb, uuid, sizeof (uuid));
18	])
19])
20
21AC_DEFUN([ZFS_AC_KERNEL_SUPER_SET_UUID], [
22	AC_MSG_CHECKING([whether super_set_uuid() is available])
23	ZFS_LINUX_TEST_RESULT([super_set_uuid], [
24		AC_MSG_RESULT(yes)
25		AC_DEFINE(HAVE_SUPER_SET_UUID, 1,
26		    [Define if super_set_uuid() is available])
27	], [
28		AC_MSG_RESULT(no)
29	])
30])
31