On Fri, Sep 06, 2013 at 05:55:45PM +0300, Sergey Senozhatsky wrote: > On (09/06/13 16:42), Jerome Marchand wrote: > > On 09/06/2013 03:47 PM, Sergey Senozhatsky wrote: > > > Calling handle_pending_slot_free() for every RW operation may > > > cause unneccessary slot_free_lock locking, because most likely > > > process will see NULL slot_free_rq. handle_pending_slot_free() > > > only when current detects that slot_free_rq is not NULL. > > > > > > Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx> > > > > > > --- > > > > > > drivers/staging/zram/zram_drv.c | 5 +++-- > > > 1 file changed, 3 insertions(+), 2 deletions(-) > > > > > > diff --git a/drivers/staging/zram/zram_drv.c b/drivers/staging/zram/zram_drv.c > > > index 91d94b5..17386e2 100644 > > > --- a/drivers/staging/zram/zram_drv.c > > > +++ b/drivers/staging/zram/zram_drv.c > > > @@ -532,14 +532,15 @@ static int zram_bvec_rw(struct zram *zram, struct bio_vec *bvec, u32 index, > > > { > > > int ret; > > > > > > + if (zram->slot_free_rq) > > > + handle_pending_slot_free(zram); > > > + > > > > Calling handle_pending_slot_free() without holding zram->lock? > > That's racy. > > sorry, my bad. it should take down_write() lock. > Or down_read() on the read path. We leave the original as-is? regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel