xfs: isolate xfs_qm_quotacheck to its source file
PATCH v2 10/10 xfs: isolate xfs_qm_quotacheck to its source file
From: Jie Liu <[email protected]>
Isolate xfs_qm_quotacheck() to xfs_qm.c as there is no other users of it.
--- fs/xfs/xfs_qm.c | 189 ++++++++++++++++++++++++++++---------------------------- fs/xfs/xfs_qm.h | 1 - 2 files changed, 94 insertions(+), 96 deletions(-)
fs/xfs/xfs_qm.c +94 -95
@@ -272,100 +272,6 @@ xfs_qm_unmount( } } - -/* -* This is called from xfs_mountfs to start quotas and initialize all -* necessary data structures like quotainfo. This is also responsible for -* running a quotacheck as necessary. We are guaranteed that the superblock -* is consistently read in at this point. -* -* If we fail here, the mount will continue with quota turned off. We don't -* need to inidicate success or failure at all. -*/ -void -xfs_qm_mount_quotas ( -xfs_mount_t *mp) -{ -int error =0 ; -uint sbf; - -/* -* If quotas on realtime volumes is not supported, we disable -* quotas immediately. -*/ -if (mp->m_sb.sb_rextents) { -xfs_notice (mp,"Cannot turn on quotas for realtime filesystem" ); - mp->m_qflags =0 ; - goto write_changes; - } - -ASSERT (XFS_IS_QUOTA_RUNNING (mp)); - -/* -* Allocate the quotainfo structure inside the mount struct, and -* create quotainode(s), and change/rev superblock if necessary. -*/ - error =xfs_qm_init_quotainfo (mp); -if (error) { -/* -* We must turn off quotas. -*/ -ASSERT (mp->m_quotainfo ==NULL ); - mp->m_qflags =0 ; - goto write_changes; - } -/* -* If any of the quotas are not consistent, do a quotacheck. -*/ -if (XFS_QM_NEED_QUOTACHECK (mp)) { - error =xfs_qm_quotacheck (mp); -if (error) { -/* Quotacheck failed and disabled quotas. */ -return ; - } - } -/* -* If one type of quotas is off, then it will lose its -* quotachecked status, since we won't be doing accounting for -* that type anymore. -*/ -if (!XFS_IS_UQUOTA_ON (mp)) - mp->m_qflags &= ~XFS_UQUOTA_CHKD ; -if (!XFS_IS_GQUOTA_ON (mp)) - mp->m_qflags &= ~XFS_GQUOTA_CHKD ; -if (!XFS_IS_PQUOTA_ON (mp)) - mp->m_qflags &= ~XFS_PQUOTA_CHKD ; - - write_changes: -/* -* We actually don't have to acquire the m_sb_lock at all. -* This can only be called from mount, and that's single threaded. XXX -*/ -spin_lock (&mp->m_sb_lock); - sbf = mp->m_sb.sb_qflags; - mp->m_sb.sb_qflags = mp->m_qflags &XFS_MOUNT_QUOTA_ALL ; -spin_unlock (&mp->m_sb_lock); - -if (sbf != (mp->m_qflags &XFS_MOUNT_QUOTA_ALL )) { -if (xfs_qm_write_sb_changes (mp,XFS_SB_QFLAGS )) { -/* -* We could only have been turning quotas off. -* We aren't in very good shape actually because -* the incore structures are convinced that quotas are -* off, but the on disk superblock doesn't know that ! -*/ -ASSERT (!(XFS_IS_QUOTA_RUNNING (mp))); -xfs_alert (mp,"%s: Superblock update failed!" , - __func__); - } - } - -if (error) { -xfs_warn (mp,"Failed to initialize disk quotas." ); -return ; - } -} -/* * Called from the vfsops layer. */
@@ -1501,7 +1407,7 @@ out_unlock:* Walk thru all the filesystem inodes and construct a consistent view * of the disk quota world. If the quotacheck fails, disable quotas. */ -int +STATIC intxfs_qm_quotacheck (xfs_mount_t *mp) {
@@ -1638,6 +1544,99 @@ xfs_qm_quotacheck( }/* +* This is called from xfs_mountfs to start quotas and initialize all +* necessary data structures like quotainfo. This is also responsible for +* running a quotacheck as necessary. We are guaranteed that the superblock +* is consistently read in at this point. +* +* If we fail here, the mount will continue with quota turned off. We don't +* need to inidicate success or failure at all. +*/ +void +xfs_qm_mount_quotas ( +struct xfs_mount *mp) +{ +int error =0 ; +uint sbf; + +/* +* If quotas on realtime volumes is not supported, we disable +* quotas immediately. +*/ +if (mp->m_sb.sb_rextents) { +xfs_notice (mp,"Cannot turn on quotas for realtime filesystem" ); + mp->m_qflags =0 ; + goto write_changes; + } + +ASSERT (XFS_IS_QUOTA_RUNNING (mp)); + +/* +* Allocate the quotainfo structure inside the mount struct, and +* create quotainode(s), and change/rev superblock if necessary. +*/ + error =xfs_qm_init_quotainfo (mp); +if (error) { +/* +* We must turn off quotas. +*/ +ASSERT (mp->m_quotainfo ==NULL ); + mp->m_qflags =0 ; + goto write_changes; + } +/* +* If any of the quotas are not consistent, do a quotacheck. +*/ +if (XFS_QM_NEED_QUOTACHECK (mp)) { + error =xfs_qm_quotacheck (mp); +if (error) { +/* Quotacheck failed and disabled quotas. */ +return ; + } + } +/* +* If one type of quotas is off, then it will lose its +* quotachecked status, since we won't be doing accounting for +* that type anymore. +*/ +if (!XFS_IS_UQUOTA_ON (mp)) + mp->m_qflags &= ~XFS_UQUOTA_CHKD ; +if (!XFS_IS_GQUOTA_ON (mp)) + mp->m_qflags &= ~XFS_GQUOTA_CHKD ; +if (!XFS_IS_PQUOTA_ON (mp)) + mp->m_qflags &= ~XFS_PQUOTA_CHKD ; + + write_changes: +/* +* We actually don't have to acquire the m_sb_lock at all. +* This can only be called from mount, and that's single threaded. XXX +*/ +spin_lock (&mp->m_sb_lock); + sbf = mp->m_sb.sb_qflags; + mp->m_sb.sb_qflags = mp->m_qflags &XFS_MOUNT_QUOTA_ALL ; +spin_unlock (&mp->m_sb_lock); + +if (sbf != (mp->m_qflags &XFS_MOUNT_QUOTA_ALL )) { +if (xfs_qm_write_sb_changes (mp,XFS_SB_QFLAGS )) { +/* +* We could only have been turning quotas off. +* We aren't in very good shape actually because +* the incore structures are convinced that quotas are +* off, but the on disk superblock doesn't know that ! +*/ +ASSERT (!(XFS_IS_QUOTA_RUNNING (mp))); +xfs_alert (mp,"%s: Superblock update failed!" , + __func__); + } + } + +if (error) { +xfs_warn (mp,"Failed to initialize disk quotas." ); +return ; + } +} + +/* * This is called after the superblock has been read in and we're ready to * iget the quota inodes. */
fs/xfs/xfs_qm.h +0 -1
@@ -157,7 +157,6 @@ struct xfs_dquot_acct {#define XFS_QM_RTBWARNLIMIT 5extern void xfs_qm_destroy_quotainfo (struct xfs_mount *); -extern int xfs_qm_quotacheck (struct xfs_mount *);extern int xfs_qm_write_sb_changes (struct xfs_mount *,__int64_t );/* dquot stuff */
Signature · 6 lines
1.8.3.2 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 5 lines · Jeff Liu
From: Jie Liu <[email protected]>
Isolate
xfs_qm_quotacheck()toxfs_qm.cas there is no other users of it.Signed-off-by Jie Liu <[email protected]>
Looks good, but the description is a bit confusing, we'd normallay say something like:
"xfs: mark xfs_qm_quotacheck as static
xfs_qm_quotacheck is not used outside of xfs_qm.c. Mark it static and move it around in the file to avoid a forward declaration."
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 7 lines · Christoph Hellwig
Quoted 5 lines · Jeff Liu
From: Jie Liu <[email protected]>
Isolate
xfs_qm_quotacheck()toxfs_qm.cas there is no other users of it.Signed-off-by Jie Liu <[email protected]>
Quoted 7 lines
Looks good, but the description is a bit confusing, we'd normallay say something like:
"xfs: mark
xfs_qm_quotacheckas static
xfs_qm_quotacheckis not used outside ofxfs_qm.c. Mark it static and move it around in the file to avoid a forward declaration."
Nice suggestion, thanks for your review.
Thanks,
-Jeff
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs