• Stuart Brodsky's avatar
    xfs: ensure f_ffree returned by statfs() is non-negative · 2fe33661
    Stuart Brodsky authored
    Because of delayed updates to sb_icount field in the super block, it
    is possible to allocate over maxicount number of inodes.  This
    causes the arithmetic to calculate a negative number of free inodes
    in user commands like df or stat -f.
    
    Since maxicount is a somewhat arbitrary number, a slight over
    allocation is not critical but user commands should be displayed as
    0 or greater and never go negative.  To do this the value in the
    stats buffer f_ffree is capped to never go negative.
    
    [ Modified to use max_t as per Christoph's comment. ]
    Signed-off-by: default avatarStu Brodsky <sbrodsky@sgi.com>
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    2fe33661
xfs_super.c 48.5 KB