xfs: xfs_alloc_fix_freelist() can use incore perag structures
authorDave Chinner <dchinner@redhat.com>
Mon, 22 Jun 2015 00:04:31 +0000 (10:04 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 22 Jun 2015 00:04:31 +0000 (10:04 +1000)
commit50adbcb4c4e6c94b3acaad2a5854b6ca57402115
tree2805620a13234e0284c98023eb86eac762dc9fa6
parent5ebe6afaf0057ac3eaeb98defd5456894b446d22
xfs: xfs_alloc_fix_freelist() can use incore perag structures

At the moment, xfs_alloc_fix_freelist() uses a mix of per-ag based
access and agf buffer  based access to freelist and space usage
information. However, once the AGF buffer is locked inside this
function, it is guaranteed that both the in-memory and on-disk
values are identical. xfs_alloc_fix_freelist() doesn't modify the
values in the structures directly, so it is a read-only user of the
infomration, and hence can use the per-ag structure exclusively for
determining what it should do.

This opens up an avenue for cleaning up a lot of duplicated logic
whose only difference is the structure it gets the data from, and in
doing so removes a lot of needless byte swapping overhead when
fixing up the free list.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/libxfs/xfs_alloc.c
fs/xfs/libxfs/xfs_alloc.h
fs/xfs/libxfs/xfs_bmap.c
fs/xfs/xfs_filestream.c
This page took 0.025012 seconds and 5 git commands to generate.