• Darrick J. Wong's avatar
    xfs: try to attach dquots to files before repairing them · 259ba1d3
    Darrick J. Wong authored
    Inode resource usage is tracked in the quota metadata.  Repairing a file
    might change the resources used by that file, which means that we need
    to attach dquots to the file that we're examining before accessing
    anything in the file protected by the ILOCK.
    
    However, there's a twist: a dquot cache miss requires the dquot to be
    read in from the quota file, during which we drop the ILOCK on the file
    being examined.  This means that we *must* try to attach the dquots
    before taking the ILOCK.
    
    Therefore, dquots must be attached to files in the scrub setup function.
    If doing so yields corruption errors (or unknown dquot errors), we
    instead clear the quotachecked status, which will cause a quotacheck on
    next mount.  A future series will make this trigger live quotacheck.
    
    While we're here, change the xrep_ino_dqattach function to use the
    unlocked dqattach functions so that we avoid cycling the ILOCK if the
    inode already has dquots attached.  This makes the naming and locking
    requirements consistent with the rest of the filesystem.
    Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    259ba1d3
rtbitmap.c 3.61 KB