xfs: introduce XFS_SB_LOG_RES() for transactions that modify sb on disk
PATCH v4 9/13 xfs: introduce XFS_SB_LOG_RES() for transactions that modify sb on disk
Introduce a new transaction space reservation XFS_SB_LOG_RES() for those transactions that need to modify the superblock on disk.
Signed-off-by Jie Liu <[email protected]>
CC Dave Chinner <[email protected]>
Reviewed-by Mark Tinguely <[email protected]>
--- fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_trans.c | 12 ++++++++++++ fs/xfs/xfs_trans.h | 1 + 3 files changed, 14 insertions(+)
fs/xfs/xfs_mount.h +1 -0
@@ -45,6 +45,7 @@ typedef struct xfs_trans_reservations {uint tr_qm_dqalloc;/* allocate quota on disk */ uint tr_qm_quotaoff;/* turn quota off */ uint tr_qm_equotaoff;/* end of turn quota off */ +uint tr_sb;/* modify superblock */ } xfs_trans_reservations_t;#ifndef __KERNEL__
fs/xfs/xfs_trans.c +12 -0
@@ -605,6 +605,17 @@ xfs_calc_qm_quotaoff_end_reservation( }/* +* Syncing the incore super block changes to disk. +* the super block to reflect the changes: sector size +*/ +STATIC uint +xfs_calc_sb_reservation ( +struct xfs_mount *mp) +{ +return xfs_calc_buf_res (1 , mp->m_sb.sb_sectsize); +} + +/* * Initialize the precomputed transaction reservation values * in the mount structure. */
@@ -640,6 +651,7 @@ xfs_trans_init( resp->tr_qm_dqalloc =xfs_calc_qm_dqalloc_reservation (mp); resp->tr_qm_quotaoff =xfs_calc_qm_quotaoff_reservation (mp); resp->tr_qm_equotaoff =xfs_calc_qm_quotaoff_end_reservation (mp); + resp->tr_sb =xfs_calc_sb_reservation (mp); }/*
fs/xfs/xfs_trans.h +1 -0
@@ -267,6 +267,7 @@ struct xfs_log_item_desc {#define XFS_QM_DQALLOC_LOG_RES (mp) ((mp)->m_reservations.tr_qm_dqalloc)#define XFS_QM_QUOTAOFF_LOG_RES (mp) ((mp)->m_reservations.tr_qm_quotaoff)#define XFS_QM_QUOTAOFF_END_LOG_RES (mp) ((mp)->m_reservations.tr_qm_equotaoff) +#define XFS_SB_LOG_RES (mp) ((mp)->m_reservations.tr_sb)/* * Various log count values.
Signature · 6 lines
1.7.9.5 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs