mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-08 12:52:40 -04:00
xfs: add a xfs_qm_unmount_rt helper
RT group enabled file systems fix the bug where we pointlessly attach quotas to the RT bitmap and summary files. Split the code to detach the quotas into a helper, make it conditional and document the differing behavior for RT group and pre-RT group file systems. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
committed by
Darrick J. Wong
parent
9c3cfb9c96
commit
cd8d049082
@@ -29,6 +29,7 @@
|
||||
#include "xfs_health.h"
|
||||
#include "xfs_da_format.h"
|
||||
#include "xfs_metafile.h"
|
||||
#include "xfs_rtgroup.h"
|
||||
|
||||
/*
|
||||
* The global quota manager. There is only one of these for the entire
|
||||
@@ -210,6 +211,16 @@ xfs_qm_unmount(
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
xfs_qm_unmount_rt(
|
||||
struct xfs_mount *mp)
|
||||
{
|
||||
if (mp->m_rbmip)
|
||||
xfs_qm_dqdetach(mp->m_rbmip);
|
||||
if (mp->m_rsumip)
|
||||
xfs_qm_dqdetach(mp->m_rsumip);
|
||||
}
|
||||
|
||||
/*
|
||||
* Called from the vfsops layer.
|
||||
*/
|
||||
@@ -223,10 +234,13 @@ xfs_qm_unmount_quotas(
|
||||
*/
|
||||
ASSERT(mp->m_rootip);
|
||||
xfs_qm_dqdetach(mp->m_rootip);
|
||||
if (mp->m_rbmip)
|
||||
xfs_qm_dqdetach(mp->m_rbmip);
|
||||
if (mp->m_rsumip)
|
||||
xfs_qm_dqdetach(mp->m_rsumip);
|
||||
|
||||
/*
|
||||
* For pre-RTG file systems, the RT inodes have quotas attached,
|
||||
* detach them now.
|
||||
*/
|
||||
if (!xfs_has_rtgroups(mp))
|
||||
xfs_qm_unmount_rt(mp);
|
||||
|
||||
/*
|
||||
* Release the quota inodes.
|
||||
|
||||
Reference in New Issue
Block a user