xfs: report proper f_files in statfs if we overshoot imaxpct
PATCH 1/1 xfs: report proper f_files in statfs if we overshoot imaxpct
Normally, a statfs syscall reports m_maxicount as f_files (total file nodes in file system) because it is supposed to be the upper limit for dynamically-allocated inodes.
It's possible, however, to overshoot imaxpct / m_maxicount. If this happens, we should report the actual number of allocated inodes, which is contained in sb_icount. Add one more adjustment to the statfs code to make this happen.
Reported-by Alexander Tsvetkov <[email protected]>
Signed-off-by Eric Sandeen <[email protected]>
---
fs/xfs/xfs_super.c +5 -0
@@ -1111,6 +1111,11 @@ xfs_fs_statfs( statp->f_files, mp->m_maxicount); +/* If sb_icount overshot maxicount, report actual allocation */ + statp->f_files =max_t (typeof (statp->f_files), + statp->f_files, + sbp->sb_icount); +/* make sure statp->f_ffree does not underflow */ ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); statp->f_ffree =max_t (__int64_t, ffree,0 );
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs