Re: [PATCH] block: Avoid accessing an already freed kobject in delete_partition

From: Rajat Asthana
Date: Mon Jul 05 2021 - 21:01:26 EST




On 03/07/21 10:56 am, Christoph Hellwig wrote:
This should be fixed properly by:

"block: check disk exist before trying to add partition"

Hi Christoph, thanks a lot for suggesting this fix. I have been
working on implementing this and have tried the following:
- I checked if the the kobject of device structure embedded in
gendisk structure is not NULL, to add the partition.
This didn't work.

- Then I checked the if kobject of the block_device struct (part0)
embedded in the gendisk struct is not NULL, to add the partition.
This also didn't work.

- Then I checked the i_state of the bd_inode field of block_device
struct embedded in the gendisk struct. I checked if the I_FREEING or
I_WILL_FREE fields are not set. The reason behind doing this was
to confirm that we only create partition on the disks which are not
being freed.

Am I going in the right direction? Can you point me to the correct
direction if I am not?

thanks
-- Rajat