Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
btrfsprogs
0169-btrfs-progs-udev-add-rules-for-dm-devices....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0169-btrfs-progs-udev-add-rules-for-dm-devices.patch of Package btrfsprogs
From 8bd39e44efa9fdbf221200b3d680b2d8205c89e9 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney <jeffm@suse.com> Date: Fri, 6 May 2016 15:18:32 -0400 Subject: [PATCH v2] btrfs-progs: udev: add rules for dm devices References: bsc#912170 bsc#888215 Git-commit: 62c0666378eb70285b6a3052bf4144d2132a5891 Patch-mainline: v4.6 References: bsc#912170 bsc#888215 Systemd's btrfs rule runs btrfs dev ready on each device as it's discovered. The btrfs command is executed as a builtin command via an IMPORT{builtin} rule, which means it gets executed at rule evaluation time, not rule execution time. That means that the device mapper links haven't been setup yet and the only nodes that can be depended upon are /dev/dm-#. That we see /dev/mapper/name names in /proc/mounts is only because we replace the device name we have cached with the one passed in via mount. If we have a multi-device file system and the primary device is removed, the remaining devices will show /dev/dm-#. In addition, if the udev rule is executed again by someone generating a change event (e.g. partprobe), the names are also replaced by the /dev/dm-# names. This patch adds a new rule that adds a run rule that calls btrfs dev ready again using the device mapper links once they're created. --- 64-btrfs-dm.rules | 10 ++++++++++ Makefile.in | 8 ++++++++ configure.ac | 2 ++ 3 files changed, 20 insertions(+) create mode 100644 64-btrfs-dm.rules --- /dev/null +++ b/64-btrfs-dm.rules @@ -0,0 +1,10 @@ +SUBSYSTEM!="block", GOTO="btrfs_end" +KERNEL!="dm-[0-9]*", GOTO="btrfs_end" +ACTION!="add|change", GOTO="btrfs_end" +ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end" + +# Once the device mapper symlink is created, tell btrfs about it +# so we get the friendly name in /proc/mounts (and tools that read it) +ENV{DM_NAME}=="?*", RUN{builtin}+="btrfs ready /dev/mapper/$env{DM_NAME}" + +LABEL="btrfs_end" --- a/Makefile.in +++ b/Makefile.in @@ -84,11 +84,15 @@ libbtrfs_headers = send-stream.h send-ut extent_io.h ioctl.h ctree.h btrfsck.h version.h TESTS = fsck-tests.sh convert-tests.sh +udev_rules = 64-btrfs-dm.rules + prefix ?= @prefix@ exec_prefix = @exec_prefix@ bindir = @bindir@ libdir ?= @libdir@ incdir = @includedir@/btrfs +udevdir = @UDEVDIR@ +udevruledir = ${udevdir}/rules.d ifeq ("$(origin V)", "command line") BUILD_VERBOSE = $(V) @@ -390,6 +394,10 @@ install: $(libs) $(progs_install) $(INST cp -a $(lib_links) $(DESTDIR)$(libdir) $(INSTALL) -m755 -d $(DESTDIR)$(incdir) $(INSTALL) -m644 $(headers) $(DESTDIR)$(incdir) +ifneq ($(udevdir),) + $(INSTALL) -m755 -d $(DESTDIR)$(udevruledir) + $(INSTALL) -m644 $(udev_rules) $(DESTDIR)$(udevruledir) +endif install-static: $(progs_static) $(INSTALLDIRS) $(INSTALL) -m755 -d $(DESTDIR)$(bindir) --- a/configure.ac +++ b/configure.ac @@ -124,6 +124,8 @@ PKG_STATIC(UUID_LIBS_STATIC, [uuid]) PKG_CHECK_MODULES(ZLIB, [zlib]) PKG_STATIC(ZLIB_LIBS_STATIC, [zlib]) +PKG_CHECK_VAR([UDEVDIR], [udev], [udevdir]) + dnl lzo library does not provide pkg-config, let use classic way AC_CHECK_LIB([lzo2], [lzo_version], [ LZO2_LIBS="-llzo2"
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