Am 02.02.2017 um 18:34 schrieb Jan Kara:
> Allocate struct backing_dev_info separately instead of embedding it
> inside the superblock. This unifies handling of bdi among users.
> 
> CC: Richard Weinberger <[email protected]>
> CC: Artem Bityutskiy <[email protected]>
> CC: Adrian Hunter <[email protected]>
> CC: [email protected]
> Signed-off-by: Jan Kara <[email protected]>
> ---
>  fs/ubifs/super.c | 23 +++++++----------------
>  fs/ubifs/ubifs.h |  3 ---
>  2 files changed, 7 insertions(+), 19 deletions(-)
> 
> diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
> index e08aa04fc835..34810eb52b22 100644
> --- a/fs/ubifs/super.c
> +++ b/fs/ubifs/super.c
> @@ -1827,7 +1827,6 @@ static void ubifs_put_super(struct super_block *sb)
>       }
>  
>       ubifs_umount(c);
> -     bdi_destroy(&c->bdi);
>       ubi_close_volume(c->ubi);
>       mutex_unlock(&c->umount_mutex);
>  }
> @@ -2019,29 +2018,23 @@ static int ubifs_fill_super(struct super_block *sb, 
> void *data, int silent)
>               goto out;
>       }
>  
> +     err = ubifs_parse_options(c, data, 0);
> +     if (err)
> +             goto out_close;
> +
>       /*
>        * UBIFS provides 'backing_dev_info' in order to disable read-ahead. For
>        * UBIFS, I/O is not deferred, it is done immediately in readpage,
>        * which means the user would have to wait not just for their own I/O
>        * but the read-ahead I/O as well i.e. completely pointless.
>        *
> -      * Read-ahead will be disabled because @c->bdi.ra_pages is 0.
> +      * Read-ahead will be disabled because @sb->s_bdi->ra_pages is 0.
>        */
> -     c->bdi.name = "ubifs",
> -     c->bdi.capabilities = 0;

So ->capabilities is now zero by default since you use __GFP_ZERO in
bdi_alloc().
At least for UBIFS I'll add a comment on this, otherwise it is not so
clear that UBIFS wants a BDI with no capabilities and how it achieves that.

Acked-by: Richard Weinberger <[email protected]>

Thanks,
//richard

Reply via email to