[dm-devel] [PATCH] kpartx: Add -P option for partition scanning

Ritika Srivastava ritika.srivastava at oracle.com
Tue Feb 22 18:59:10 UTC 2022


On 2/22/22, 10:28 AM, "Benjamin Marzinski" wrote:

    On Fri, Feb 11, 2022 at 12:41:48PM -0800, Ritika Srivastava wrote:
    >> Add -P, partition scanning option to kpartx which would set
    >> LO_FLAGS_PARTSCAN flag during loop device creation.
    >> This option is same as losetup -P option.

    >I'm confused here. What's the benefit of doing this? Doesn't this create
    >partition devices, just like kpartx would?

This enables partition scanning for loop devices created via kpartx.
When enabled, LO_FLAGS_PARTSCAN flag will be set during loop creation via kpartx -a.
On detach (kpartx -d), any partitions (/dev/loopXpY) would also be removed.
It has similar use cases as losetup -P option.

Currently, kpartx does not create partition loop devices (/dev/loopXpY)  via kpartx -a

Example:
1. Current behavior: kpartx -a does not create /dev/loop0p1

# kpartx -av test.img
add map loop0p1 (252:0): 0 99937 linear /dev/loop0 64

(Notice below: /dev/loop0p1 NOT created)
# ls -l /dev/loop0*
brw-rw----. 1 root disk  7,   0 Jan 14 20:46 /dev/loop0 

2. IF -P IS USED to create loop device, /dev/loop0p1 IS created.

# kpartx -av -P test.img
add map loop0p1 (252:0): 0 99937 linear /dev/loop0 64

(Notice below: /dev/loop0p1 IS created)
# ls -l /dev/loop0*
brw-rw----. 1 root disk   7,   0 Jan 14 20:50 /dev/loop0
brw-rw----. 1 root disk 259,   0 Jan 14 20:50 /dev/loop0p1


Similar behavior can also be observed during detach
1. Current Behavior:  kpartx -d does NOT delete partitions

# kpartx -a -v test.img
# parted -a none -s /dev/loop0 mkpart primary 64s 100000s

# ls -l /dev/loop0*
brw-rw----. 1 root disk   7,   0 Jan 14 20:54 /dev/loop0
brw-rw----. 1 root disk 259,   0 Jan 14 20:54 /dev/loop0p1

# kpartx -d test.img
loop deleted : /dev/loop0

(Notice: /dev/loop0p1 NOT deleted)
# ls -l /dev/loop0*
brw-rw----. 1 root disk   7,   0 Jan 14 20:54 /dev/loop0
brw-rw----. 1 root disk 259,   0 Jan 14 20:54 /dev/loop0p1

2. IF -P IS added while creating loop, kpartx -d DOES delete loop0p1

# kpartx -a -v -P test.img
# parted -a none -s /dev/loop0 mkpart primary 64s 100000s

# ls -l /dev/loop0*
brw-rw----. 1 root disk   7,   0 Jan 14 20:46 /dev/loop0
brw-rw----. 1 root disk 259,   0 Jan 14 20:46 /dev/loop0p1

# kpartx -d test.img
loop deleted : /dev/loop0

(Notice: /dev/loop0p1 IS deleted)
# ls -l /dev/loop0*
brw-rw----. 1 root disk  7,   0 Jan 14 20:46 /dev/loop0

Thanks,
Ritika







More information about the dm-devel mailing list