The set is merged, thanks. On Wed, May 17, 2017 at 7:06 PM, Benjamin Marzinski <[email protected]> wrote:
> On Mon, May 15, 2017 at 05:37:10PM +0200, Martin Wilck wrote: > > ACK for the set > > -Ben > > > Working on a bug report about kpartx not properly removing > > partitions for loop devices, I realized a number of glitches > > and improperly handled corner cases in the kpartx code for > > deleting partitions. Some mappings are not deleted although > > they should be, and others are deleted although that is clearly > > wrong. > > > > This patch series fixes the issues I found. The series starts > > with a test program demonstrating the problems. The program > > succeeds only after all patches of this series are applied. > > > > Here is my summary of what I think how kpartx should behave: > > > > 1) kpartx should delete all mappings it created beforehand. > > 2) kpartx should handle partitions on dm devices and other devices > > (e.g. loop devices) equally well. > > 3) kpartx should only delete "partitions", which are single-target > > linear mappings into a block device. Other maps should not be > touched. > > 4) kpartx should only delete mappings it created itself beforehand. > > In particular, it shouldn't delete LVM LVs, even if they are fully > > contained in the block device at hand and thus look like partitions > > in the first place. (For historical compatibility reasons, allow > > such mappings to be deleted with the -f/--force flag). > > 5) DM map names may be changed, thus kpartx shouldn't rely on them to > > check whether a mapping is a partition of a particular device. It is > > legal for a partition of /dev/loop0 to be named "loop0". > > > > One patch has an obvious libdevmapper equivalent and is therefore > > included (08/12) although this series is otherwise focused only on > kpartx. > > Patch 04/12 would also have a libdevmapper equivalent, but I haven't > > included it because it would conflict with Ben's previously posted > > patch "libmultipath: fix partition detection". > > > > The patches are based on Christophe's tree; Christophe, if you prefer, > > I can rebase them on top of Ben's late submissions. > > > > Feedback is welcome. > > > > Changes wrt v1: > > - Test program (01/12): improved cleanup, and used "kpartx -s" rather > than waiting. > > - At Ben's suggestion, removed "no_partitions" support rather than > fixing it. > > - Previous 04/12 split into two patches (04+05/12), improving and > separating > > out the part that would similarly apply to libmultipath (see above). > > - New UUID format in patch 09/12 since the previous one wasn't > well-received; > > the "-kpartx-" part was superfluous, as partition UUIDs start with > "part%s-" anyway. > > - Added the trivial fix 12/12. > > > > Martin Wilck (12): > > kpartx: test-kpartx: new unit test program > > kpartx: remove "no_partitions" support > > kpartx: remove is_loop_device > > kpartx: relax and improve UUID check in dm_compare_uuid > > kpartx: dm_remove_partmaps: support non-dm devices > > kpartx: dm_devn: return error for non-existent device > > kpartx: don't treat multi-linear mappings as partitions > > libmultipath: don't treat multi-linear mappings as partitions > > kpartx: use partition UUID for non-DM devices > > kpartx: use absolute path for regular files > > kpartx: find_loop_by_file: use sysfs > > kpartx: include sys/sysmacros.h > > > > kpartx/devmapper.c | 80 ++++++--------- > > kpartx/devmapper.h | 2 +- > > kpartx/kpartx.c | 50 ++++++++-- > > kpartx/lopart.c | 75 ++++++-------- > > kpartx/lopart.h | 1 - > > kpartx/sysmacros.h | 9 -- > > kpartx/test-kpartx | 254 ++++++++++++++++++++++++++++++ > +++++++++++++++++ > > libmultipath/devmapper.c | 15 +-- > > 8 files changed, 371 insertions(+), 115 deletions(-) > > delete mode 100644 kpartx/sysmacros.h > > create mode 100755 kpartx/test-kpartx > > > > -- > > 2.12.2 >
-- dm-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/dm-devel
