diff --git a/tools/Makefile.in b/tools/Makefile.in index 1a8db36e5..6171322b6 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -133,6 +133,7 @@ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a all: device-mapper CFLAGS_lvm.o += $(EXTRA_EXEC_CFLAGS) +CFLAGS_lvmcmdline.o += $(VALGRIND_CFLAGS) lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c index 1cdc2937a..e5867772d 100644 --- a/tools/lvmcmdline.c +++ b/tools/lvmcmdline.c @@ -29,6 +29,10 @@ #include #include +#ifdef HAVE_VALGRIND +#include +#endif + #ifdef HAVE_GETOPTLONG # include # define GETOPTLONG_FN(a, b, c, d, e) getopt_long((a), (b), (c), (d), (e)) @@ -1681,6 +1685,13 @@ static int _close_stray_fds(const char *command) struct dirent *dirent; DIR *d; +#ifdef HAVE_VALGRIND + if (RUNNING_ON_VALGRIND) { + log_debug("Skipping close of descriptors within valgrind execution."); + return 1; + } +#endif + if (getenv("LVM_SUPPRESS_FD_WARNINGS")) suppress_warnings = 1;