Re: [PATCH v3 3/3] zram: support BDI_CAP_STABLE_WRITES

From: Minchan Kim
Date: Sat Nov 26 2016 - 09:42:33 EST


Hi Sergey,

On Sat, Nov 26, 2016 at 03:37:01PM +0900, Sergey Senozhatsky wrote:
> Hello Minchan,
>
> On (11/25/16 17:35), Minchan Kim wrote:
> [..]
> > +static void zram_revalidate_disk(struct zram *zram)
> > +{
> > + revalidate_disk(zram->disk);
> > + zram->disk->queue->backing_dev_info.capabilities |=
> > + BDI_CAP_STABLE_WRITES;
> > +}
> > +
> > /*
> > * Check if request is within bounds and aligned on zram logical blocks.
> > */
> > @@ -1094,7 +1102,7 @@ static ssize_t disksize_store(struct device *dev,
> > zram->comp = comp;
> > zram->disksize = disksize;
> > set_capacity(zram->disk, zram->disksize >> SECTOR_SHIFT);
> > - revalidate_disk(zram->disk);
> > + zram_revalidate_disk(zram);
> > up_write(&zram->init_lock);
> >
> > return len;
> > @@ -1142,7 +1150,7 @@ static ssize_t reset_store(struct device *dev,
> > /* Make sure all the pending I/O are finished */
> > fsync_bdev(bdev);
> > zram_reset_device(zram);
> > - revalidate_disk(zram->disk);
> > + zram_revalidate_disk(zram);
> > bdput(bdev);
> >
> > mutex_lock(&bdev->bd_mutex);
>
> why not set it just once, when we allocate queue/disk and configure both
> of them: in zram_add()

I should have mentioned the reason.
The revalidate_disk reset the BDI_CAP_STABLE_WRITES.

Thanks.