Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP2:GA
util-linux-systemd
libmount-Avoid-triggering-autofs-in-lookup_umou...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File libmount-Avoid-triggering-autofs-in-lookup_umount_fs.patch of Package util-linux-systemd
From 7065cc0e5312cafc5ae3e4c342f78f264300fb5f Mon Sep 17 00:00:00 2001 From: Fabian Vogt <fvogt@suse.de> Date: Wed, 1 Apr 2020 13:15:13 +0200 Subject: [PATCH 1/4] libmount: Avoid triggering autofs in lookup_umount_fs_by_statfs References: boo#1168389 Upstream: merged (gh#karelzak/util-linux#1002) Currently, umount /foo results in a statfs("/foo") call, which triggers autofs. This can create another mountpoint on /foo, which is then unmounted later instead of the actual /foo at the time umount was called. This is especially an issue for umount -R /bar, which just fails with -EBUSY as the accidental mountpoint is never accounted for and so it tries to umount /bar before /bar/someautofs. Replace the direct statfs call with open(path, O_PATH) + fstatfs, which sees the autofs mount directly, without triggering it. --- libmount/src/context_umount.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) Index: util-linux-2.34/libmount/src/context_umount.c =================================================================== --- util-linux-2.34.orig/libmount/src/context_umount.c +++ util-linux-2.34/libmount/src/context_umount.c @@ -283,9 +283,13 @@ static int lookup_umount_fs(struct libmn if (!type) { struct statfs vfs; - DBG(CXT, ul_debugobj(cxt, "umount: trying statfs()")); - if (statfs(tgt, &vfs) == 0) + DBG(CXT, ul_debugobj(cxt, "umount: trying fstatfs()")); + /* O_PATH avoids triggering automount points. */ + int pathfd = open(tgt, O_PATH); + if (pathfd >= 0 && fstatfs(pathfd, &vfs) == 0) { type = mnt_statfs_get_fstype(&vfs); + close(pathfd); + } if (type) { rc = mnt_fs_set_fstype(cxt->fs, type); if (rc)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor