On 1/16/24 6:46 AM, Yu Kuai wrote: > Hi, > > ? 2024/01/16 21:23, Yu Kuai ??: >> Hi, Christoph >> >> ? 2024/01/16 18:47, Christoph Hellwig ??: >>> Hi Allison, >>> >>> please try this minimal fix. I need to double check if we historically >>> returned ENXIO or EINVAL for adding / resizing partitions, which would >>> make things more complicated. Or maybe you already have data for that >>> at hand? >>> >>> diff --git a/block/ioctl.c b/block/ioctl.c >>> index 9c73a763ef8838..f2028e39767821 100644 >>> --- a/block/ioctl.c >>> +++ b/block/ioctl.c >>> @@ -21,7 +21,7 @@ static int blkpg_do_ioctl(struct block_device *bdev, >>> sector_t start, length; >>> if (disk->flags & GENHD_FL_NO_PART) >>> - return -EINVAL; >>> + return -ENXIO; >> >> I think this might not be a proper fix, the reason if that before this >> condition is added, -ENXIO is returned from bdev_del_partition(). And >> there are also some other error number like -EACCES,-EFAULT following, >> so this change will still make changes for user in other cases. > > Please ignore the patch from last email. Sorry for the noise... > bdev_resize_partition() will also return -ENXIO if partition does't > exist. So the right patch should be following: Can you send this out as a proper patch? -- Jens Axboe