clean up some xfs_log_priv.h macros
PATCH 1/3 clean up some xfs_log_priv.h macros
- the various assign lsn macros are replaced by a single inline, xlog_assign_lsn, which is equivalent to ASSIGN_ANY_LSN_HOST except for a more sane calling convention. ASSIGN_LSN_DISK is replaced by xlog_assign_lsn and a manual bytespap, and ASSIGN_LSN by the same, except we pass the cycle and block arguments explicitly instead of a log paramter. The latter two variants only had 2, respectively one user anyway.
- the GET_CYCLE is replaced by a xlog_get_cycle inline with exactly the same calling conventions.
- GET_CLIENT_ID is replaced by xlog_get_client_id which leaves away the unused arch argument. Instead of conditional defintions depending on host endianess we now do an unconditional swap and shift then, which generates equal code.
- the unused XLOG_SET macro is removed.
fs/xfs/xfs_log.c +8 -6
@@ -1142,7 +1142,7 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_flags |=XLOG_ACTIVE_RECOVERY ; log->l_prev_block =-1 ; -ASSIGN_ANY_LSN_HOST (log->l_tail_lsn,1 ,0 ); + log->l_tail_lsn =xlog_assign_lsn (1 ,0 );/* log->l_tail_lsn = 0x100000000LL; cycle = 1; current block = 0 */ log->l_last_sync_lsn = log->l_tail_lsn; log->l_curr_cycle =1 ;/* 0 is bad since this is initial value */
@@ -1308,8 +1308,7 @@ xlog_grant_push_ail(xfs_mount_t *mp, threshold_block -= log->l_logBBsize; threshold_cycle +=1 ; } -ASSIGN_ANY_LSN_HOST (threshold_lsn, threshold_cycle, - threshold_block); + threshold_lsn =xlog_assign_lsn (threshold_cycle, threshold_block);/* Don't pass in an lsn greater than the lsn of the last * log record known to be on disk.
@@ -2382,7 +2381,8 @@ restart: log->l_iclog_hsize, XLOG_REG_TYPE_LRHEADER);INT_SET (head->h_cycle,ARCH_CONVERT , log->l_curr_cycle); -ASSIGN_LSN (head->h_lsn, log); +INT_SET (head->h_lsn,ARCH_CONVERT , +xlog_assign_lsn (log->l_curr_cycle, log->l_curr_block));ASSERT (log->l_curr_block >=0 ); }
@@ -3494,9 +3494,11 @@ xlog_verify_iclog(xlog_t *log,if (idx >= (XLOG_HEADER_CYCLE_SIZE /BBSIZE )) { j = idx / (XLOG_HEADER_CYCLE_SIZE /BBSIZE ); k = idx % (XLOG_HEADER_CYCLE_SIZE /BBSIZE ); - clientid =GET_CLIENT_ID (xhdr[j].hic_xheader.xh_cycle_data[k],ARCH_CONVERT ); + clientid =xlog_get_client_id ( + xhdr[j].hic_xheader.xh_cycle_data[k]); }else { - clientid =GET_CLIENT_ID (iclog->ic_header.h_cycle_data[idx],ARCH_CONVERT ); + clientid =xlog_get_client_id ( + iclog->ic_header.h_cycle_data[idx]); } }if (clientid !=XFS_TRANSACTION && clientid !=XFS_LOG )
fs/xfs/xfs_log_priv.h +16 -31
63 lines not on this page · raw message
fs/xfs/xfs_log_recover.c +16 -13
@@ -311,7 +311,7 @@ xlog_find_cycle_start(if ((error =xlog_bread (log, mid_blk,1 , bp)))return error; offset =xlog_align (log, mid_blk,1 , bp); - mid_cycle =GET_CYCLE (offset,ARCH_CONVERT ); + mid_cycle =xlog_get_cycle (offset);if (mid_cycle == cycle) { *last_blk = mid_blk;/* last_half_cycle == mid_cycle */
@@ -371,7 +371,7 @@ xlog_find_verify_cycle( buf =xlog_align (log, i, bcount, bp);for (j =0 ; j < bcount; j++) { - cycle =GET_CYCLE (buf,ARCH_CONVERT ); + cycle =xlog_get_cycle (buf);if (cycle == stop_on_cycle_no) { *new_blk = i+j; goto out;
@@ -550,13 +550,13 @@ xlog_find_head(if ((error =xlog_bread (log,0 ,1 , bp))) goto bp_err; offset =xlog_align (log,0 ,1 , bp); - first_half_cycle =GET_CYCLE (offset,ARCH_CONVERT ); + first_half_cycle =xlog_get_cycle (offset); last_blk = head_blk = log_bbnum -1 ;/* get cycle # of last block */ if ((error =xlog_bread (log, last_blk,1 , bp))) goto bp_err; offset =xlog_align (log, last_blk,1 , bp); - last_half_cycle =GET_CYCLE (offset,ARCH_CONVERT ); + last_half_cycle =xlog_get_cycle (offset);ASSERT (last_half_cycle !=0 );/*
@@ -808,7 +808,7 @@ xlog_find_tail(if ((error =xlog_bread (log,0 ,1 , bp))) goto bread_err; offset =xlog_align (log,0 ,1 , bp); -if (GET_CYCLE (offset,ARCH_CONVERT ) ==0 ) { +if (xlog_get_cycle (offset) ==0 ) { *tail_blk =0 ;/* leave all other log inited values alone */ goto exit;
@@ -922,10 +922,12 @@ xlog_find_tail(* log records will point recovery to after the * current unmount record. */ -ASSIGN_ANY_LSN_HOST (log->l_tail_lsn, log->l_curr_cycle, - after_umount_blk); -ASSIGN_ANY_LSN_HOST (log->l_last_sync_lsn, log->l_curr_cycle, - after_umount_blk); + log->l_tail_lsn = +xlog_assign_lsn (log->l_curr_cycle, + after_umount_blk); + log->l_last_sync_lsn = +xlog_assign_lsn (log->l_curr_cycle, + after_umount_blk); *tail_blk = after_umount_blk;/*
@@ -1007,7 +1009,7 @@ xlog_find_zeroed(if ((error =xlog_bread (log,0 ,1 , bp))) goto bp_err; offset =xlog_align (log,0 ,1 , bp); - first_cycle =GET_CYCLE (offset,ARCH_CONVERT ); + first_cycle =xlog_get_cycle (offset);if (first_cycle ==0 ) {/* completely zeroed log */ *blk_no =0 ;xlog_put_bp (bp);
@@ -1018,7 +1020,7 @@ xlog_find_zeroed(if ((error =xlog_bread (log, log_bbnum-1 ,1 , bp))) goto bp_err; offset =xlog_align (log, log_bbnum-1 ,1 , bp); - last_cycle =GET_CYCLE (offset,ARCH_CONVERT ); + last_cycle =xlog_get_cycle (offset);if (last_cycle !=0 ) {/* log completely written to */ xlog_put_bp (bp);return 0 ;
@@ -1102,8 +1104,9 @@ xlog_add_record(INT_SET (recp->h_cycle,ARCH_CONVERT , cycle);INT_SET (recp->h_version,ARCH_CONVERT ,XFS_SB_VERSION_HASLOGV2 (&log->l_mp->m_sb) ?2 :1 ); -ASSIGN_ANY_LSN_DISK (recp->h_lsn, cycle, block); -ASSIGN_ANY_LSN_DISK (recp->h_tail_lsn, tail_cycle, tail_block); +INT_SET (recp->h_lsn,ARCH_CONVERT ,xlog_assign_lsn (cycle, block)); +INT_SET (recp->h_tail_lsn,ARCH_CONVERT , +xlog_assign_lsn (tail_cycle, tail_block));INT_SET (recp->h_fmt,ARCH_CONVERT ,XLOG_FMT );memcpy (&recp->h_fs_uuid, &log->l_mp->m_sb.sb_uuid,sizeof (uuid_t)); }