The set is merged, thanks.
On Wed, May 17, 2017 at 7:06 PM, Benjamin Marzinski <bmarzins@xxxxxxxxxx> 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 dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel