Message ID | 20210423011108.11988-3-mcgrof@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | zram: fix few sysfs races | expand |
On Fri, Apr 23, 2021 at 01:11:06AM +0000, Luis Chamberlain wrote: > As with other areas of the zram diver, check if the zram > block device is being claimed but do it early to avoid > trying to set something up for a zram device which may > be on its way out. I guess you're talking about zram_remove race with disksize_store. Please add some code sequence diagram like previous patch, which makes thing more clear. Otherwise, looks good to me. > > This doesn't fix a known crash, however the potential for > an issue issue is found through code inspection. > > Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> > --- > drivers/block/zram/zram_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c > index 431b60cd85c1..6051d20b88c3 100644 > --- a/drivers/block/zram/zram_drv.c > +++ b/drivers/block/zram/zram_drv.c > @@ -1729,7 +1729,7 @@ static ssize_t disksize_store(struct device *dev, > > mutex_lock(&zram_index_mutex); > > - if (!zram_up) { > + if (!zram_up || zram->claim) { > err = -ENODEV; > goto out; > } > -- > 2.27.0 >
diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 431b60cd85c1..6051d20b88c3 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1729,7 +1729,7 @@ static ssize_t disksize_store(struct device *dev, mutex_lock(&zram_index_mutex); - if (!zram_up) { + if (!zram_up || zram->claim) { err = -ENODEV; goto out; }
As with other areas of the zram diver, check if the zram block device is being claimed but do it early to avoid trying to set something up for a zram device which may be on its way out. This doesn't fix a known crash, however the potential for an issue issue is found through code inspection. Signed-off-by: Luis Chamberlain <mcgrof@kernel.org> --- drivers/block/zram/zram_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)