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. Jerome > if (rw == READ) { > down_read(&zram->lock); > - handle_pending_slot_free(zram); > ret = zram_bvec_read(zram, bvec, index, offset, bio); > up_read(&zram->lock); > } else { > down_write(&zram->lock); > - handle_pending_slot_free(zram); > ret = zram_bvec_write(zram, bvec, index, offset); > up_write(&zram->lock); > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel