diff --git a/64-btrfs-dm.rules b/64-btrfs-dm.rules new file mode 100644 index 00000000..b2e49f4e --- /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" diff --git a/Makefile.in b/Makefile.in index 0a1aece7..dadfd409 100644 --- a/Makefile.in +++ b/Makefile.in @@ -84,11 +84,15 @@ libbtrfs_headers = send-stream.h send-utils.h send.h rbtree.h btrfs-list.h \ 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) $(INSTALLDIRS) 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) diff --git a/configure.ac b/configure.ac index 797eb790..68a37012 100644 --- 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"