çå: [PATCH] fs/xfs: fix f_ffree value for statfs when project quota is set(Internet mail)

From: dbyin(åç)
Date: Thu Nov 22 2018 - 21:10:51 EST


We set xfs project quota with overlayfs for docker container. When I enter into the container and run the command 'df -ih', the 'IFree' and 'IUsed' are uncorrect:

#df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 1000 -235M 235M - /

So I want to fix this flaw, and this is very meaningful for our applications.
Ye

>
> On Thu, Nov 22, 2018 at 01:28:04PM +0000, dbyin(åç) wrote:
> > When project is set, we should use inode limit minus the used count
> >
> > Signed-off-by: Ye Yin <dbyin@xxxxxxxxxxx>
>
> This makes sense to me, but ... it's been broken like this since 2006.
> Is there a reason why (someone named Glen) wrote it this way?
>
> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
>
> --D
>
> > ---
> > fs/xfs/xfs_qm_bhv.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/xfs/xfs_qm_bhv.c b/fs/xfs/xfs_qm_bhv.c index
> > 73a1d77ec187..3091e4bc04ef 100644
> > --- a/fs/xfs/xfs_qm_bhv.c
> > +++ b/fs/xfs/xfs_qm_bhv.c
> > @@ -40,7 +40,7 @@ xfs_fill_statvfs_from_dquot(
> > statp->f_files = limit;
> > statp->f_ffree =
> > (statp->f_files > dqp->q_res_icount) ?
> > - (statp->f_ffree - dqp->q_res_icount) : 0;
> > + (statp->f_files - dqp->q_res_icount) : 0;
> > }
> > }
> >
> > --
> > 2.16.2