On 2018/6/21 20:20, Yunlei He wrote: > Now, we depend on fsck to ensure quota file data is ok, > so we scan whole partition if checkpoint without umount > flag. It's same for quota off error case, which may make > quota file data inconsistent. > > Signed-off-by: Yunlei He <heyun...@huawei.com> > --- > fs/f2fs/super.c | 17 ++++++++++++++--- > 1 file changed, 14 insertions(+), 3 deletions(-) > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index 73d7d7e..679af0a 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -1820,7 +1820,9 @@ static int f2fs_quota_off(struct super_block *sb, int > type) > if (!inode || !igrab(inode)) > return dquot_quota_off(sb, type); > > - f2fs_quota_sync(sb, type); > + err = f2fs_quota_sync(sb, type); > + if (err) > + goto out_put; > > err = dquot_quota_off(sb, type); > if (err || f2fs_sb_has_quota_ino(sb)) > @@ -1839,9 +1841,18 @@ static int f2fs_quota_off(struct super_block *sb, int > type) > void f2fs_quota_off_umount(struct super_block *sb) > { > int type; > + int err; > > - for (type = 0; type < MAXQUOTAS; type++) > - f2fs_quota_off(sb, type); > + for (type = 0; type < MAXQUOTAS; type++) { > + err = f2fs_quota_off(sb, type); > + if (err) { > + f2fs_msg(sb, KERN_ERR, > + "Failed to off quota tracking "
Minor, "Fail to turn off disk quota (type: %d, err: %d), run fsck to fix it." type, err) Thanks, > + "(type=%d, err=%d). Please run " > + "fsck to fix.", type, err); > + set_sbi_flag(F2FS_SB(sb), SBI_NEED_FSCK); > + } > + } > } > > static int f2fs_get_projid(struct inode *inode, kprojid_t *projid) > ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel