On Tue 11-04-23 11:37:26, Carlos Maiolino wrote: > On Wed, Apr 05, 2023 at 01:42:45PM +0200, Jan Kara wrote: > > > @@ -3763,6 +3878,9 @@ static void shmem_put_super(struct super_block *sb) > > > { > > > struct shmem_sb_info *sbinfo = SHMEM_SB(sb); > > > > > > +#ifdef CONFIG_TMPFS_QUOTA > > > + shmem_disable_quotas(sb); > > > +#endif > > > free_percpu(sbinfo->ino_batch); > > > percpu_counter_destroy(&sbinfo->used_blocks); > > > mpol_put(sbinfo->mpol); > > > @@ -3841,6 +3959,17 @@ static int shmem_fill_super(struct super_block *sb, struct fs_context *fc) > > > #endif > > > uuid_gen(&sb->s_uuid); > > > > > > +#ifdef CONFIG_TMPFS_QUOTA > > > + if (ctx->seen & SHMEM_SEEN_QUOTA) { > > > + sb->dq_op = &shmem_quota_operations; > > > + sb->s_qcop = &dquot_quotactl_sysfile_ops; > > > + sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP; > > > > s_quota_types should rather be copied from ctx, shouldn't it? Or why is > > s_quota_types inconsistent with ctx->quota_types? > > I believe s_qupta_types here is a bitmask of supported quota types, while > ctx->quota_types refers to the mount options being passed from the user. > > So we should enable in sb->s_quota_types which quota types the filesystem > supports, not which were enabled by the user. Oh, right. Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR