]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - fs/xfs/xfs_log_priv.h
xfs: convert l_tail_lsn to an atomic variable.
authorDave Chinner <dchinner@redhat.com>
Tue, 21 Dec 2010 01:28:39 +0000 (12:28 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 21 Dec 2010 01:28:39 +0000 (12:28 +1100)
commit1c3cb9ec07fabf0c0970adc46fd2a1f09c1186dd
treeb8b6bf968f663723b06aa68ec499e49f3cdfbad0
parent84f3c683c4d3f36d3c3ed320babd960a332ac458
xfs: convert l_tail_lsn to an atomic variable.

log->l_tail_lsn is currently protected by the log grant lock. The
lock is only needed for serialising readers against writers, so we
don't really need the lock if we make the l_tail_lsn variable an
atomic. Converting the l_tail_lsn variable to an atomic64_t means we
can start to peel back the grant lock from various operations.

Also, provide functions to safely crack an atomic LSN variable into
it's component pieces and to recombined the components into an
atomic variable. Use them where appropriate.

This also removes the need for explicitly holding a spinlock to read
the l_tail_lsn on 32 bit platforms.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/linux-2.6/xfs_trace.h
fs/xfs/xfs_log.c
fs/xfs/xfs_log_priv.h
fs/xfs/xfs_log_recover.c