xfs: move xfs_perag_get/put to xfs_ag.[ch]
They are AG functions, not superblock functions, so move them to the appropriate location. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
This commit is contained in:
parent
d07f6ca923
commit
9bbafc7191
|
@ -27,6 +27,141 @@
|
|||
#include "xfs_defer.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_trace.h"
|
||||
|
||||
/*
|
||||
* Passive reference counting access wrappers to the perag structures. If the
|
||||
* per-ag structure is to be freed, the freeing code is responsible for cleaning
|
||||
* up objects with passive references before freeing the structure. This is
|
||||
* things like cached buffers.
|
||||
*/
|
||||
struct xfs_perag *
|
||||
xfs_perag_get(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t agno)
|
||||
{
|
||||
struct xfs_perag *pag;
|
||||
int ref = 0;
|
||||
|
||||
rcu_read_lock();
|
||||
pag = radix_tree_lookup(&mp->m_perag_tree, agno);
|
||||
if (pag) {
|
||||
ASSERT(atomic_read(&pag->pag_ref) >= 0);
|
||||
ref = atomic_inc_return(&pag->pag_ref);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
trace_xfs_perag_get(mp, agno, ref, _RET_IP_);
|
||||
return pag;
|
||||
}
|
||||
|
||||
/*
|
||||
* search from @first to find the next perag with the given tag set.
|
||||
*/
|
||||
struct xfs_perag *
|
||||
xfs_perag_get_tag(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t first,
|
||||
int tag)
|
||||
{
|
||||
struct xfs_perag *pag;
|
||||
int found;
|
||||
int ref;
|
||||
|
||||
rcu_read_lock();
|
||||
found = radix_tree_gang_lookup_tag(&mp->m_perag_tree,
|
||||
(void **)&pag, first, 1, tag);
|
||||
if (found <= 0) {
|
||||
rcu_read_unlock();
|
||||
return NULL;
|
||||
}
|
||||
ref = atomic_inc_return(&pag->pag_ref);
|
||||
rcu_read_unlock();
|
||||
trace_xfs_perag_get_tag(mp, pag->pag_agno, ref, _RET_IP_);
|
||||
return pag;
|
||||
}
|
||||
|
||||
void
|
||||
xfs_perag_put(
|
||||
struct xfs_perag *pag)
|
||||
{
|
||||
int ref;
|
||||
|
||||
ASSERT(atomic_read(&pag->pag_ref) > 0);
|
||||
ref = atomic_dec_return(&pag->pag_ref);
|
||||
trace_xfs_perag_put(pag->pag_mount, pag->pag_agno, ref, _RET_IP_);
|
||||
}
|
||||
|
||||
/*
|
||||
* xfs_initialize_perag_data
|
||||
*
|
||||
* Read in each per-ag structure so we can count up the number of
|
||||
* allocated inodes, free inodes and used filesystem blocks as this
|
||||
* information is no longer persistent in the superblock. Once we have
|
||||
* this information, write it into the in-core superblock structure.
|
||||
*/
|
||||
int
|
||||
xfs_initialize_perag_data(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t agcount)
|
||||
{
|
||||
xfs_agnumber_t index;
|
||||
xfs_perag_t *pag;
|
||||
xfs_sb_t *sbp = &mp->m_sb;
|
||||
uint64_t ifree = 0;
|
||||
uint64_t ialloc = 0;
|
||||
uint64_t bfree = 0;
|
||||
uint64_t bfreelst = 0;
|
||||
uint64_t btree = 0;
|
||||
uint64_t fdblocks;
|
||||
int error = 0;
|
||||
|
||||
for (index = 0; index < agcount; index++) {
|
||||
/*
|
||||
* read the agf, then the agi. This gets us
|
||||
* all the information we need and populates the
|
||||
* per-ag structures for us.
|
||||
*/
|
||||
error = xfs_alloc_pagf_init(mp, NULL, index, 0);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
error = xfs_ialloc_pagi_init(mp, NULL, index);
|
||||
if (error)
|
||||
return error;
|
||||
pag = xfs_perag_get(mp, index);
|
||||
ifree += pag->pagi_freecount;
|
||||
ialloc += pag->pagi_count;
|
||||
bfree += pag->pagf_freeblks;
|
||||
bfreelst += pag->pagf_flcount;
|
||||
btree += pag->pagf_btreeblks;
|
||||
xfs_perag_put(pag);
|
||||
}
|
||||
fdblocks = bfree + bfreelst + btree;
|
||||
|
||||
/*
|
||||
* If the new summary counts are obviously incorrect, fail the
|
||||
* mount operation because that implies the AGFs are also corrupt.
|
||||
* Clear FS_COUNTERS so that we don't unmount with a dirty log, which
|
||||
* will prevent xfs_repair from fixing anything.
|
||||
*/
|
||||
if (fdblocks > sbp->sb_dblocks || ifree > ialloc) {
|
||||
xfs_alert(mp, "AGF corruption. Please run xfs_repair.");
|
||||
error = -EFSCORRUPTED;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Overwrite incore superblock counters with just-read data */
|
||||
spin_lock(&mp->m_sb_lock);
|
||||
sbp->sb_ifree = ifree;
|
||||
sbp->sb_icount = ialloc;
|
||||
sbp->sb_fdblocks = fdblocks;
|
||||
spin_unlock(&mp->m_sb_lock);
|
||||
|
||||
xfs_reinit_percpu_counters(mp);
|
||||
out:
|
||||
xfs_fs_mark_healthy(mp, XFS_SICK_FS_COUNTERS);
|
||||
return error;
|
||||
}
|
||||
|
||||
static int
|
||||
xfs_get_aghdr_buf(
|
||||
|
|
|
@ -9,6 +9,16 @@
|
|||
|
||||
struct xfs_mount;
|
||||
struct xfs_trans;
|
||||
struct xfs_perag;
|
||||
|
||||
/*
|
||||
* perag get/put wrappers for ref counting
|
||||
*/
|
||||
int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t);
|
||||
struct xfs_perag *xfs_perag_get(struct xfs_mount *, xfs_agnumber_t);
|
||||
struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *, xfs_agnumber_t,
|
||||
int tag);
|
||||
void xfs_perag_put(struct xfs_perag *pag);
|
||||
|
||||
struct aghdr_init_data {
|
||||
/* per ag data */
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "xfs_btree.h"
|
||||
#include "xfs_refcount_btree.h"
|
||||
#include "xfs_ialloc_btree.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "xfs_shared.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_bit.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_defer.h"
|
||||
#include "xfs_btree.h"
|
||||
|
@ -24,6 +23,7 @@
|
|||
#include "xfs_trans.h"
|
||||
#include "xfs_buf_item.h"
|
||||
#include "xfs_log.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
#include "xfs_bmap.h"
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_btree.h"
|
||||
#include "xfs_btree_staging.h"
|
||||
|
@ -19,6 +18,7 @@
|
|||
#include "xfs_error.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
|
||||
STATIC struct xfs_btree_cur *
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "xfs_buf_item.h"
|
||||
#include "xfs_dir2.h"
|
||||
#include "xfs_log.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "xfs_attr_leaf.h"
|
||||
#include "xfs_filestream.h"
|
||||
#include "xfs_rmap.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
#include "xfs_refcount.h"
|
||||
#include "xfs_icache.h"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_bit.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_btree.h"
|
||||
|
@ -27,6 +26,7 @@
|
|||
#include "xfs_trace.h"
|
||||
#include "xfs_log.h"
|
||||
#include "xfs_rmap.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
/*
|
||||
* Lookup a record by ino in the btree given by cur.
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_btree.h"
|
||||
#include "xfs_btree_staging.h"
|
||||
|
@ -20,6 +19,7 @@
|
|||
#include "xfs_trans.h"
|
||||
#include "xfs_bit.h"
|
||||
#include "xfs_rmap.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
static struct xfs_btree_cur *
|
||||
xfs_refcountbt_dup_cursor(
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "xfs_errortag.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
/*
|
||||
* Lookup the first record less than or equal to [bno, len, owner, offset]
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_alloc.h"
|
||||
|
@ -20,6 +19,7 @@
|
|||
#include "xfs_trace.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_extent_busy.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include "xfs_ialloc.h"
|
||||
#include "xfs_alloc.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_buf_item.h"
|
||||
#include "xfs_bmap_btree.h"
|
||||
|
@ -30,67 +29,6 @@
|
|||
* Physical superblock buffer manipulations. Shared with libxfs in userspace.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Reference counting access wrappers to the perag structures.
|
||||
* Because we never free per-ag structures, the only thing we
|
||||
* have to protect against changes is the tree structure itself.
|
||||
*/
|
||||
struct xfs_perag *
|
||||
xfs_perag_get(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t agno)
|
||||
{
|
||||
struct xfs_perag *pag;
|
||||
int ref = 0;
|
||||
|
||||
rcu_read_lock();
|
||||
pag = radix_tree_lookup(&mp->m_perag_tree, agno);
|
||||
if (pag) {
|
||||
ASSERT(atomic_read(&pag->pag_ref) >= 0);
|
||||
ref = atomic_inc_return(&pag->pag_ref);
|
||||
}
|
||||
rcu_read_unlock();
|
||||
trace_xfs_perag_get(mp, agno, ref, _RET_IP_);
|
||||
return pag;
|
||||
}
|
||||
|
||||
/*
|
||||
* search from @first to find the next perag with the given tag set.
|
||||
*/
|
||||
struct xfs_perag *
|
||||
xfs_perag_get_tag(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t first,
|
||||
int tag)
|
||||
{
|
||||
struct xfs_perag *pag;
|
||||
int found;
|
||||
int ref;
|
||||
|
||||
rcu_read_lock();
|
||||
found = radix_tree_gang_lookup_tag(&mp->m_perag_tree,
|
||||
(void **)&pag, first, 1, tag);
|
||||
if (found <= 0) {
|
||||
rcu_read_unlock();
|
||||
return NULL;
|
||||
}
|
||||
ref = atomic_inc_return(&pag->pag_ref);
|
||||
rcu_read_unlock();
|
||||
trace_xfs_perag_get_tag(mp, pag->pag_agno, ref, _RET_IP_);
|
||||
return pag;
|
||||
}
|
||||
|
||||
void
|
||||
xfs_perag_put(
|
||||
struct xfs_perag *pag)
|
||||
{
|
||||
int ref;
|
||||
|
||||
ASSERT(atomic_read(&pag->pag_ref) > 0);
|
||||
ref = atomic_dec_return(&pag->pag_ref);
|
||||
trace_xfs_perag_put(pag->pag_mount, pag->pag_agno, ref, _RET_IP_);
|
||||
}
|
||||
|
||||
/* Check all the superblock fields we care about when reading one in. */
|
||||
STATIC int
|
||||
xfs_validate_sb_read(
|
||||
|
@ -841,78 +779,6 @@ xfs_sb_mount_common(
|
|||
mp->m_ag_max_usable = xfs_alloc_ag_max_usable(mp);
|
||||
}
|
||||
|
||||
/*
|
||||
* xfs_initialize_perag_data
|
||||
*
|
||||
* Read in each per-ag structure so we can count up the number of
|
||||
* allocated inodes, free inodes and used filesystem blocks as this
|
||||
* information is no longer persistent in the superblock. Once we have
|
||||
* this information, write it into the in-core superblock structure.
|
||||
*/
|
||||
int
|
||||
xfs_initialize_perag_data(
|
||||
struct xfs_mount *mp,
|
||||
xfs_agnumber_t agcount)
|
||||
{
|
||||
xfs_agnumber_t index;
|
||||
xfs_perag_t *pag;
|
||||
xfs_sb_t *sbp = &mp->m_sb;
|
||||
uint64_t ifree = 0;
|
||||
uint64_t ialloc = 0;
|
||||
uint64_t bfree = 0;
|
||||
uint64_t bfreelst = 0;
|
||||
uint64_t btree = 0;
|
||||
uint64_t fdblocks;
|
||||
int error = 0;
|
||||
|
||||
for (index = 0; index < agcount; index++) {
|
||||
/*
|
||||
* read the agf, then the agi. This gets us
|
||||
* all the information we need and populates the
|
||||
* per-ag structures for us.
|
||||
*/
|
||||
error = xfs_alloc_pagf_init(mp, NULL, index, 0);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
error = xfs_ialloc_pagi_init(mp, NULL, index);
|
||||
if (error)
|
||||
return error;
|
||||
pag = xfs_perag_get(mp, index);
|
||||
ifree += pag->pagi_freecount;
|
||||
ialloc += pag->pagi_count;
|
||||
bfree += pag->pagf_freeblks;
|
||||
bfreelst += pag->pagf_flcount;
|
||||
btree += pag->pagf_btreeblks;
|
||||
xfs_perag_put(pag);
|
||||
}
|
||||
fdblocks = bfree + bfreelst + btree;
|
||||
|
||||
/*
|
||||
* If the new summary counts are obviously incorrect, fail the
|
||||
* mount operation because that implies the AGFs are also corrupt.
|
||||
* Clear FS_COUNTERS so that we don't unmount with a dirty log, which
|
||||
* will prevent xfs_repair from fixing anything.
|
||||
*/
|
||||
if (fdblocks > sbp->sb_dblocks || ifree > ialloc) {
|
||||
xfs_alert(mp, "AGF corruption. Please run xfs_repair.");
|
||||
error = -EFSCORRUPTED;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* Overwrite incore superblock counters with just-read data */
|
||||
spin_lock(&mp->m_sb_lock);
|
||||
sbp->sb_ifree = ifree;
|
||||
sbp->sb_icount = ialloc;
|
||||
sbp->sb_fdblocks = fdblocks;
|
||||
spin_unlock(&mp->m_sb_lock);
|
||||
|
||||
xfs_reinit_percpu_counters(mp);
|
||||
out:
|
||||
xfs_fs_mark_healthy(mp, XFS_SICK_FS_COUNTERS);
|
||||
return error;
|
||||
}
|
||||
|
||||
/*
|
||||
* xfs_log_sb() can be used to copy arbitrary changes to the in-core superblock
|
||||
* into the superblock buffer to be logged. It does not provide the higher
|
||||
|
|
|
@ -13,15 +13,6 @@ struct xfs_trans;
|
|||
struct xfs_fsop_geom;
|
||||
struct xfs_perag;
|
||||
|
||||
/*
|
||||
* perag get/put wrappers for ref counting
|
||||
*/
|
||||
extern struct xfs_perag *xfs_perag_get(struct xfs_mount *, xfs_agnumber_t);
|
||||
extern struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *, xfs_agnumber_t,
|
||||
int tag);
|
||||
extern void xfs_perag_put(struct xfs_perag *pag);
|
||||
extern int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t);
|
||||
|
||||
extern void xfs_log_sb(struct xfs_trans *tp);
|
||||
extern int xfs_sync_sb(struct xfs_mount *mp, bool wait);
|
||||
extern int xfs_sync_sb_buf(struct xfs_mount *mp);
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "xfs_alloc.h"
|
||||
#include "xfs_ialloc.h"
|
||||
#include "xfs_rmap.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "scrub/scrub.h"
|
||||
#include "scrub/common.h"
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "xfs_rmap.h"
|
||||
#include "xfs_rmap_btree.h"
|
||||
#include "xfs_refcount_btree.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "scrub/scrub.h"
|
||||
#include "scrub/common.h"
|
||||
#include "scrub/trace.h"
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
#include "xfs_btree.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_icache.h"
|
||||
#include "xfs_alloc.h"
|
||||
|
@ -26,6 +25,7 @@
|
|||
#include "xfs_trans_priv.h"
|
||||
#include "xfs_attr.h"
|
||||
#include "xfs_reflink.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "scrub/scrub.h"
|
||||
#include "scrub/common.h"
|
||||
#include "scrub/trace.h"
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_alloc.h"
|
||||
#include "xfs_ialloc.h"
|
||||
#include "xfs_health.h"
|
||||
#include "xfs_btree.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "scrub/scrub.h"
|
||||
#include "scrub/common.h"
|
||||
#include "scrub/trace.h"
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "xfs_shared.h"
|
||||
#include "xfs_format.h"
|
||||
#include "xfs_btree.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_health.h"
|
||||
#include "scrub/scrub.h"
|
||||
#include "scrub/health.h"
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
#include "xfs_rmap_btree.h"
|
||||
#include "xfs_refcount_btree.h"
|
||||
#include "xfs_extent_busy.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
#include "xfs_quota.h"
|
||||
#include "scrub/scrub.h"
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_log.h"
|
||||
|
@ -19,6 +18,7 @@
|
|||
#include "xfs_buf_item.h"
|
||||
#include "xfs_errortag.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
static kmem_zone_t *xfs_buf_zone;
|
||||
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_btree.h"
|
||||
#include "xfs_alloc_btree.h"
|
||||
|
@ -18,6 +17,7 @@
|
|||
#include "xfs_extent_busy.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_log.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
STATIC int
|
||||
xfs_trim_extents(
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
#include "xfs_log_format.h"
|
||||
#include "xfs_shared.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_alloc.h"
|
||||
#include "xfs_extent_busy.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_log.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
void
|
||||
xfs_extent_busy_insert(
|
||||
|
|
|
@ -9,13 +9,13 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_bmap.h"
|
||||
#include "xfs_alloc.h"
|
||||
#include "xfs_mru_cache.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
#include "xfs_trans.h"
|
||||
#include "xfs_filestream.h"
|
||||
|
|
|
@ -9,11 +9,11 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_health.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
/*
|
||||
* Warn about metadata corruption that we detected but haven't fixed, and
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_inode.h"
|
||||
#include "xfs_trans.h"
|
||||
|
@ -23,6 +22,7 @@
|
|||
#include "xfs_dquot.h"
|
||||
#include "xfs_reflink.h"
|
||||
#include "xfs_ialloc.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
#include <linux/iversion.h>
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
#include "xfs_format.h"
|
||||
#include "xfs_log_format.h"
|
||||
#include "xfs_trans_resv.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_mount.h"
|
||||
#include "xfs_defer.h"
|
||||
#include "xfs_inode.h"
|
||||
|
@ -35,6 +34,7 @@
|
|||
#include "xfs_log.h"
|
||||
#include "xfs_bmap_btree.h"
|
||||
#include "xfs_reflink.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
kmem_zone_t *xfs_inode_zone;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
#include "xfs_icache.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_buf_item.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
#define BLK_AVG(blk1, blk2) ((blk1+blk2) >> 1)
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "xfs_extent_busy.h"
|
||||
#include "xfs_health.h"
|
||||
#include "xfs_trace.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
static DEFINE_MUTEX(xfs_uuid_table_mutex);
|
||||
static int xfs_uuid_table_size;
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include "xfs_trace.h"
|
||||
#include "xfs_icache.h"
|
||||
#include "xfs_error.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
/*
|
||||
* The global quota manager. There is only one of these for the entire
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "xfs_quota.h"
|
||||
#include "xfs_reflink.h"
|
||||
#include "xfs_iomap.h"
|
||||
#include "xfs_sb.h"
|
||||
#include "xfs_ag.h"
|
||||
#include "xfs_ag_resv.h"
|
||||
|
||||
/*
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
#include "xfs_bmap_item.h"
|
||||
#include "xfs_reflink.h"
|
||||
#include "xfs_pwork.h"
|
||||
#include "xfs_ag.h"
|
||||
|
||||
#include <linux/magic.h>
|
||||
#include <linux/fs_context.h>
|
||||
|
|
Loading…
Reference in New Issue