mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-09-15 13:50:11 +03:00

Use statx to verify that path-based unmounts proceed only if the mountpoint reported by statx matches the MNTTAB entry reported by libzfs, aborting the operation if they differ. Align `zfs umount /path` behavior with `zfs umount dataset`. Reviewed-by: Alexander Motin <mav@FreeBSD.org> Signed-off-by: Ameer Hamza <ahamza@ixsystems.com> Closes #17481
35 lines
847 B
Plaintext
35 lines
847 B
Plaintext
dnl #
|
|
dnl # Check for statx() function and STATX_MNT_ID availability
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_CONFIG_USER_STATX], [
|
|
AC_CHECK_HEADERS([linux/stat.h],
|
|
[have_stat_headers=yes],
|
|
[have_stat_headers=no])
|
|
|
|
AS_IF([test "x$have_stat_headers" = "xyes"], [
|
|
AC_CHECK_FUNC([statx], [
|
|
AC_DEFINE([HAVE_STATX], [1], [statx() is available])
|
|
|
|
dnl Check for STATX_MNT_ID availability
|
|
AC_MSG_CHECKING([for STATX_MNT_ID])
|
|
AC_COMPILE_IFELSE([
|
|
AC_LANG_PROGRAM([[
|
|
#include <linux/stat.h>
|
|
]], [[
|
|
struct statx stx;
|
|
int mask = STATX_MNT_ID;
|
|
(void)mask;
|
|
(void)stx.stx_mnt_id;
|
|
]])
|
|
], [
|
|
AC_MSG_RESULT([yes])
|
|
AC_DEFINE([HAVE_STATX_MNT_ID], [1], [STATX_MNT_ID is available])
|
|
], [
|
|
AC_MSG_RESULT([no])
|
|
])
|
|
])
|
|
], [
|
|
AC_MSG_WARN([linux/stat.h not found; skipping statx support])
|
|
])
|
|
]) dnl end AC_DEFUN
|