1 From: Hannes Reinecke <hare@suse.de>
2 Subject: Emulate BLKRRPART on device-mapper
4 Partitions on device-mapper devices are managed by kpartx (if at
5 all). So if we were just to send out a 'change' event if someone
6 called BLKRRPART on these devices, kpartx will be triggered via udev
7 and can manage the partitions accordingly.
9 Signed-off-by: Hannes Reinecke <hare@suse.de>
12 drivers/md/dm.c | 22 ++++++++++++++--------
13 1 file changed, 14 insertions(+), 8 deletions(-)
17 @@ -333,19 +333,25 @@ static int dm_blk_ioctl(struct inode *in
18 if (!map || !dm_table_get_size(map))
21 - /* We only support devices that have a single target */
22 - if (dm_table_get_num_targets(map) != 1)
25 - tgt = dm_table_get_target(map, 0);
27 if (dm_suspended(md)) {
32 - if (tgt->type->ioctl)
33 - r = tgt->type->ioctl(tgt, inode, file, cmd, arg);
34 + if (cmd == BLKRRPART) {
35 + /* Emulate Re-read partitions table */
36 + kobject_uevent(&md->disk->dev.kobj, KOBJ_CHANGE);
39 + /* We only support devices that have a single target */
40 + if (dm_table_get_num_targets(map) != 1)
43 + tgt = dm_table_get_target(map, 0);
45 + if (tgt->type->ioctl)
46 + r = tgt->type->ioctl(tgt, inode, file, cmd, arg);