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