diff options
author | Dave Chinner <dchinner@redhat.com> | 2010-12-03 08:02:40 -0500 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2010-12-03 08:02:40 -0500 |
commit | c8a09ff8ca2235bccdaea8a52fbd5349646a8ba4 (patch) | |
tree | a06b4fa59672fd6fa9dd884e1e0bc746adc011b6 /fs/xfs/xfs_log_priv.h | |
parent | 1c3cb9ec07fabf0c0970adc46fd2a1f09c1186dd (diff) |
xfs: convert log grant heads to atomic variables
Convert the log grant heads to atomic64_t types in preparation for
converting the accounting algorithms to atomic operations. his patch
just converts the variables; the algorithmic changes are in a
separate patch for clarity.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/xfs_log_priv.h')
-rw-r--r-- | fs/xfs/xfs_log_priv.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index d34af1c21ed2..7619d6a02388 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h | |||
@@ -514,8 +514,8 @@ typedef struct log { | |||
514 | spinlock_t l_grant_lock ____cacheline_aligned_in_smp; | 514 | spinlock_t l_grant_lock ____cacheline_aligned_in_smp; |
515 | struct list_head l_reserveq; | 515 | struct list_head l_reserveq; |
516 | struct list_head l_writeq; | 516 | struct list_head l_writeq; |
517 | int64_t l_grant_reserve_head; | 517 | atomic64_t l_grant_reserve_head; |
518 | int64_t l_grant_write_head; | 518 | atomic64_t l_grant_write_head; |
519 | 519 | ||
520 | /* | 520 | /* |
521 | * l_last_sync_lsn and l_tail_lsn are atomics so they can be set and | 521 | * l_last_sync_lsn and l_tail_lsn are atomics so they can be set and |
@@ -596,18 +596,18 @@ xlog_assign_atomic_lsn(atomic64_t *lsn, uint cycle, uint block) | |||
596 | * will always get consistent component values to work from. | 596 | * will always get consistent component values to work from. |
597 | */ | 597 | */ |
598 | static inline void | 598 | static inline void |
599 | xlog_crack_grant_head(int64_t *head, int *cycle, int *space) | 599 | xlog_crack_grant_head(atomic64_t *head, int *cycle, int *space) |
600 | { | 600 | { |
601 | int64_t val = *head; | 601 | int64_t val = atomic64_read(head); |
602 | 602 | ||
603 | *cycle = val >> 32; | 603 | *cycle = val >> 32; |
604 | *space = val & 0xffffffff; | 604 | *space = val & 0xffffffff; |
605 | } | 605 | } |
606 | 606 | ||
607 | static inline void | 607 | static inline void |
608 | xlog_assign_grant_head(int64_t *head, int cycle, int space) | 608 | xlog_assign_grant_head(atomic64_t *head, int cycle, int space) |
609 | { | 609 | { |
610 | *head = ((int64_t)cycle << 32) | space; | 610 | atomic64_set(head, ((int64_t)cycle << 32) | space); |
611 | } | 611 | } |
612 | 612 | ||
613 | /* | 613 | /* |