Messages in this thread |  | | Date | Fri, 22 Oct 2021 12:02:42 -0700 | From | Luis Chamberlain <> | Subject | Re: [PATCH V2 3/4] zram: avoid race between zram_remove and disksize_store |
| |
On Wed, Oct 20, 2021 at 09:55:47AM +0800, Ming Lei wrote: > After resetting device in zram_remove(), disksize_store still may come and > allocate resources again before deleting gendisk, fix the race by resetting > zram after del_gendisk() returns. At that time, disksize_store can't come > any more. > > Reported-by: Luis Chamberlain <mcgrof@kernel.org> > Signed-off-by: Ming Lei <ming.lei@redhat.com> > --- > drivers/block/zram/zram_drv.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c > index 8883de7aa3d7..6078d1dae44a 100644 > --- a/drivers/block/zram/zram_drv.c > +++ b/drivers/block/zram/zram_drv.c > @@ -2002,6 +2002,13 @@ static int zram_remove(struct zram *zram) > /* del_gendisk drains pending reset_store */ > WARN_ON_ONCE(claimed && zram->claim); > > + /* > + * disksize store may come between zram_reset_device and del_gendisk, so > + * run the last reset for avoiding leak anything allocated in > + * disksize_store().
The above is not clear English, how about:
disksize_store() may be called in between zram_reset_device() and del_gendisk(), so run the last reset to avoid leaking anything allocated with disksize_store()
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Luis
|  |