git://ftp.safe.ca
/
safe
/
jmp
/
linux-2.6
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[XFS] kill the XFS_IMAP_BULKSTAT flag
[safe/jmp/linux-2.6]
/
fs
/
xfs
/
xfs_fsops.c
diff --git
a/fs/xfs/xfs_fsops.c
b/fs/xfs/xfs_fsops.c
index
432e823
..
f1d0585
100644
(file)
--- a/
fs/xfs/xfs_fsops.c
+++ b/
fs/xfs/xfs_fsops.c
@@
-77,36
+77,38
@@
xfs_fs_geometry(
if (new_version >= 3) {
geo->version = XFS_FSOP_GEOM_VERSION;
geo->flags =
if (new_version >= 3) {
geo->version = XFS_FSOP_GEOM_VERSION;
geo->flags =
- (
XFS_SB_VERSION_HASATTR
(&mp->m_sb) ?
+ (
xfs_sb_version_hasattr
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_ATTR : 0) |
XFS_FSOP_GEOM_FLAGS_ATTR : 0) |
- (
XFS_SB_VERSION_HASNLINK
(&mp->m_sb) ?
+ (
xfs_sb_version_hasnlink
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_NLINK : 0) |
XFS_FSOP_GEOM_FLAGS_NLINK : 0) |
- (
XFS_SB_VERSION_HASQUOTA
(&mp->m_sb) ?
+ (
xfs_sb_version_hasquota
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_QUOTA : 0) |
XFS_FSOP_GEOM_FLAGS_QUOTA : 0) |
- (
XFS_SB_VERSION_HASALIGN
(&mp->m_sb) ?
+ (
xfs_sb_version_hasalign
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_IALIGN : 0) |
XFS_FSOP_GEOM_FLAGS_IALIGN : 0) |
- (
XFS_SB_VERSION_HASDALIGN
(&mp->m_sb) ?
+ (
xfs_sb_version_hasdalign
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_DALIGN : 0) |
XFS_FSOP_GEOM_FLAGS_DALIGN : 0) |
- (
XFS_SB_VERSION_HASSHARED
(&mp->m_sb) ?
+ (
xfs_sb_version_hasshared
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
- (
XFS_SB_VERSION_HASEXTFLGBIT
(&mp->m_sb) ?
+ (
xfs_sb_version_hasextflgbit
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
- (
XFS_SB_VERSION_HASDIRV
2(&mp->m_sb) ?
+ (
xfs_sb_version_hasdirv
2(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_DIRV2 : 0) |
XFS_FSOP_GEOM_FLAGS_DIRV2 : 0) |
- (
XFS_SB_VERSION_HASSECTOR
(&mp->m_sb) ?
+ (
xfs_sb_version_hassector
(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_SECTOR : 0) |
XFS_FSOP_GEOM_FLAGS_SECTOR : 0) |
+ (xfs_sb_version_hasasciici(&mp->m_sb) ?
+ XFS_FSOP_GEOM_FLAGS_DIRV2CI : 0) |
(xfs_sb_version_haslazysbcount(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_LAZYSB : 0) |
(xfs_sb_version_haslazysbcount(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_LAZYSB : 0) |
- (
XFS_SB_VERSION_HASATTR
2(&mp->m_sb) ?
+ (
xfs_sb_version_hasattr
2(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_ATTR2 : 0);
XFS_FSOP_GEOM_FLAGS_ATTR2 : 0);
- geo->logsectsize =
XFS_SB_VERSION_HASSECTOR
(&mp->m_sb) ?
+ geo->logsectsize =
xfs_sb_version_hassector
(&mp->m_sb) ?
mp->m_sb.sb_logsectsize : BBSIZE;
geo->rtsectsize = mp->m_sb.sb_blocksize;
geo->dirblocksize = mp->m_dirblksize;
}
if (new_version >= 4) {
geo->flags |=
mp->m_sb.sb_logsectsize : BBSIZE;
geo->rtsectsize = mp->m_sb.sb_blocksize;
geo->dirblocksize = mp->m_dirblksize;
}
if (new_version >= 4) {
geo->flags |=
- (
XFS_SB_VERSION_HASLOGV
2(&mp->m_sb) ?
+ (
xfs_sb_version_haslogv
2(&mp->m_sb) ?
XFS_FSOP_GEOM_FLAGS_LOGV2 : 0);
geo->logsunit = mp->m_sb.sb_logsunit;
}
XFS_FSOP_GEOM_FLAGS_LOGV2 : 0);
geo->logsunit = mp->m_sb.sb_logsunit;
}
@@
-124,7
+126,7
@@
xfs_growfs_data_private(
xfs_extlen_t agsize;
xfs_extlen_t tmpsize;
xfs_alloc_rec_t *arec;
xfs_extlen_t agsize;
xfs_extlen_t tmpsize;
xfs_alloc_rec_t *arec;
-
xfs_btree_sblock_t
*block;
+
struct xfs_btree_block
*block;
xfs_buf_t *bp;
int bucket;
int dpct;
xfs_buf_t *bp;
int bucket;
int dpct;
@@
-136,7
+138,6
@@
xfs_growfs_data_private(
xfs_rfsblock_t nfree;
xfs_agnumber_t oagcount;
int pct;
xfs_rfsblock_t nfree;
xfs_agnumber_t oagcount;
int pct;
- xfs_sb_t *sbp;
xfs_trans_t *tp;
nb = in->newblocks;
xfs_trans_t *tp;
nb = in->newblocks;
@@
-175,7
+176,7
@@
xfs_growfs_data_private(
memset(&mp->m_perag[oagcount], 0,
(nagcount - oagcount) * sizeof(xfs_perag_t));
mp->m_flags |= XFS_MOUNT_32BITINODES;
memset(&mp->m_perag[oagcount], 0,
(nagcount - oagcount) * sizeof(xfs_perag_t));
mp->m_flags |= XFS_MOUNT_32BITINODES;
- nagimax = xfs_initialize_perag(
XFS_MTOVFS(mp),
mp, nagcount);
+ nagimax = xfs_initialize_perag(mp, nagcount);
up_write(&mp->m_peraglock);
}
tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFS);
up_write(&mp->m_peraglock);
}
tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFS);
@@
-250,14
+251,14
@@
xfs_growfs_data_private(
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_BNO_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
- block = XFS_BUF_TO_
S
BLOCK(bp);
+ block = XFS_BUF_TO_BLOCK(bp);
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC);
block->bb_level = 0;
block->bb_numrecs = cpu_to_be16(1);
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_ABTB_MAGIC);
block->bb_level = 0;
block->bb_numrecs = cpu_to_be16(1);
- block->bb_leftsib = cpu_to_be32(NULLAGBLOCK);
- block->bb_rightsib = cpu_to_be32(NULLAGBLOCK);
- arec = XFS_
BTREE_REC_ADDR(xfs_alloc
, block, 1);
+ block->bb_
u.s.bb_
leftsib = cpu_to_be32(NULLAGBLOCK);
+ block->bb_
u.s.bb_
rightsib = cpu_to_be32(NULLAGBLOCK);
+ arec = XFS_
ALLOC_REC_ADDR(mp
, block, 1);
arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
arec->ar_blockcount = cpu_to_be32(
agsize - be32_to_cpu(arec->ar_startblock));
arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
arec->ar_blockcount = cpu_to_be32(
agsize - be32_to_cpu(arec->ar_startblock));
@@
-271,14
+272,14
@@
xfs_growfs_data_private(
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_CNT_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
- block = XFS_BUF_TO_
S
BLOCK(bp);
+ block = XFS_BUF_TO_BLOCK(bp);
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC);
block->bb_level = 0;
block->bb_numrecs = cpu_to_be16(1);
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_ABTC_MAGIC);
block->bb_level = 0;
block->bb_numrecs = cpu_to_be16(1);
- block->bb_leftsib = cpu_to_be32(NULLAGBLOCK);
- block->bb_rightsib = cpu_to_be32(NULLAGBLOCK);
- arec = XFS_
BTREE_REC_ADDR(xfs_alloc
, block, 1);
+ block->bb_
u.s.bb_
leftsib = cpu_to_be32(NULLAGBLOCK);
+ block->bb_
u.s.bb_
rightsib = cpu_to_be32(NULLAGBLOCK);
+ arec = XFS_
ALLOC_REC_ADDR(mp
, block, 1);
arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
arec->ar_blockcount = cpu_to_be32(
agsize - be32_to_cpu(arec->ar_startblock));
arec->ar_startblock = cpu_to_be32(XFS_PREALLOC_BLOCKS(mp));
arec->ar_blockcount = cpu_to_be32(
agsize - be32_to_cpu(arec->ar_startblock));
@@
-293,13
+294,13
@@
xfs_growfs_data_private(
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
bp = xfs_buf_get(mp->m_ddev_targp,
XFS_AGB_TO_DADDR(mp, agno, XFS_IBT_BLOCK(mp)),
BTOBB(mp->m_sb.sb_blocksize), 0);
- block = XFS_BUF_TO_
S
BLOCK(bp);
+ block = XFS_BUF_TO_BLOCK(bp);
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC);
block->bb_level = 0;
block->bb_numrecs = 0;
memset(block, 0, mp->m_sb.sb_blocksize);
block->bb_magic = cpu_to_be32(XFS_IBT_MAGIC);
block->bb_level = 0;
block->bb_numrecs = 0;
- block->bb_leftsib = cpu_to_be32(NULLAGBLOCK);
- block->bb_rightsib = cpu_to_be32(NULLAGBLOCK);
+ block->bb_
u.s.bb_
leftsib = cpu_to_be32(NULLAGBLOCK);
+ block->bb_
u.s.bb_
rightsib = cpu_to_be32(NULLAGBLOCK);
error = xfs_bwrite(mp, bp);
if (error) {
goto error0;
error = xfs_bwrite(mp, bp);
if (error) {
goto error0;
@@
-319,7
+320,7
@@
xfs_growfs_data_private(
}
ASSERT(bp);
agi = XFS_BUF_TO_AGI(bp);
}
ASSERT(bp);
agi = XFS_BUF_TO_AGI(bp);
- be32_add(&agi->agi_length, new);
+ be32_add
_cpu
(&agi->agi_length, new);
ASSERT(nagcount == oagcount ||
be32_to_cpu(agi->agi_length) == mp->m_sb.sb_agblocks);
xfs_ialloc_log_agi(tp, bp, XFS_AGI_LENGTH);
ASSERT(nagcount == oagcount ||
be32_to_cpu(agi->agi_length) == mp->m_sb.sb_agblocks);
xfs_ialloc_log_agi(tp, bp, XFS_AGI_LENGTH);
@@
-332,7
+333,7
@@
xfs_growfs_data_private(
}
ASSERT(bp);
agf = XFS_BUF_TO_AGF(bp);
}
ASSERT(bp);
agf = XFS_BUF_TO_AGF(bp);
- be32_add(&agf->agf_length, new);
+ be32_add
_cpu
(&agf->agf_length, new);
ASSERT(be32_to_cpu(agf->agf_length) ==
be32_to_cpu(agi->agi_length));
xfs_alloc_log_agf(tp, bp, XFS_AGF_LENGTH);
ASSERT(be32_to_cpu(agf->agf_length) ==
be32_to_cpu(agi->agi_length));
xfs_alloc_log_agf(tp, bp, XFS_AGF_LENGTH);
@@
-377,8
+378,7
@@
xfs_growfs_data_private(
error, agno);
break;
}
error, agno);
break;
}
- sbp = XFS_BUF_TO_SBP(bp);
- xfs_xlatesb(sbp, &mp->m_sb, -1, XFS_SB_ALL_BITS);
+ xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, XFS_SB_ALL_BITS);
/*
* If we get an error writing out the alternate superblocks,
* just issue a warning and continue. The real work is
/*
* If we get an error writing out the alternate superblocks,
* just issue a warning and continue. The real work is
@@
-435,10
+435,10
@@
xfs_growfs_data(
xfs_growfs_data_t *in)
{
int error;
xfs_growfs_data_t *in)
{
int error;
- if (!
cpsema
(&mp->m_growlock))
+ if (!
mutex_trylock
(&mp->m_growlock))
return XFS_ERROR(EWOULDBLOCK);
error = xfs_growfs_data_private(mp, in);
return XFS_ERROR(EWOULDBLOCK);
error = xfs_growfs_data_private(mp, in);
-
vsema
(&mp->m_growlock);
+
mutex_unlock
(&mp->m_growlock);
return error;
}
return error;
}
@@
-448,10
+448,10
@@
xfs_growfs_log(
xfs_growfs_log_t *in)
{
int error;
xfs_growfs_log_t *in)
{
int error;
- if (!
cpsema
(&mp->m_growlock))
+ if (!
mutex_trylock
(&mp->m_growlock))
return XFS_ERROR(EWOULDBLOCK);
error = xfs_growfs_log_private(mp, in);
return XFS_ERROR(EWOULDBLOCK);
error = xfs_growfs_log_private(mp, in);
-
vsema
(&mp->m_growlock);
+
mutex_unlock
(&mp->m_growlock);
return error;
}
return error;
}
@@
-464,15
+464,13
@@
xfs_fs_counts(
xfs_mount_t *mp,
xfs_fsop_counts_t *cnt)
{
xfs_mount_t *mp,
xfs_fsop_counts_t *cnt)
{
- unsigned long s;
-
- xfs_icsb_sync_counters_flags(mp, XFS_ICSB_LAZY_COUNT);
- s = XFS_SB_LOCK(mp);
+ xfs_icsb_sync_counters(mp, XFS_ICSB_LAZY_COUNT);
+ spin_lock(&mp->m_sb_lock);
cnt->freedata = mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
cnt->freertx = mp->m_sb.sb_frextents;
cnt->freeino = mp->m_sb.sb_ifree;
cnt->allocino = mp->m_sb.sb_icount;
cnt->freedata = mp->m_sb.sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp);
cnt->freertx = mp->m_sb.sb_frextents;
cnt->freeino = mp->m_sb.sb_ifree;
cnt->allocino = mp->m_sb.sb_icount;
-
XFS_SB_UNLOCK(mp, s
);
+
spin_unlock(&mp->m_sb_lock
);
return 0;
}
return 0;
}
@@
-499,7
+497,6
@@
xfs_reserve_blocks(
{
__int64_t lcounter, delta, fdblks_delta;
__uint64_t request;
{
__int64_t lcounter, delta, fdblks_delta;
__uint64_t request;
- unsigned long s;
/* If inval is null, report current values and return */
if (inval == (__uint64_t *)NULL) {
/* If inval is null, report current values and return */
if (inval == (__uint64_t *)NULL) {
@@
-517,7
+514,7
@@
xfs_reserve_blocks(
* problem. we needto work out if we are freeing or allocation
* blocks first, then we can do the modification as necessary.
*
* problem. we needto work out if we are freeing or allocation
* blocks first, then we can do the modification as necessary.
*
- * We do this under the
XFS_SB_LOCK
so that if we are near
+ * We do this under the
m_sb_lock
so that if we are near
* ENOSPC, we will hold out any changes while we work out
* what to do. This means that the amount of free space can
* change while we do this, so we need to retry if we end up
* ENOSPC, we will hold out any changes while we work out
* what to do. This means that the amount of free space can
* change while we do this, so we need to retry if we end up
@@
-528,8
+525,8
@@
xfs_reserve_blocks(
* enabled, disabled or even compiled in....
*/
retry:
* enabled, disabled or even compiled in....
*/
retry:
- s
= XFS_SB_LOCK(mp
);
- xfs_icsb_sync_counters_
flags(mp, XFS_ICSB_SB_LOCKED
);
+ s
pin_lock(&mp->m_sb_lock
);
+ xfs_icsb_sync_counters_
locked(mp, 0
);
/*
* If our previous reservation was larger than the current value,
/*
* If our previous reservation was larger than the current value,
@@
-557,11
+554,8
@@
retry:
mp->m_resblks += free;
mp->m_resblks_avail += free;
fdblks_delta = -free;
mp->m_resblks += free;
mp->m_resblks_avail += free;
fdblks_delta = -free;
- mp->m_sb.sb_fdblocks = XFS_ALLOC_SET_ASIDE(mp);
} else {
fdblks_delta = -delta;
} else {
fdblks_delta = -delta;
- mp->m_sb.sb_fdblocks =
- lcounter + XFS_ALLOC_SET_ASIDE(mp);
mp->m_resblks = request;
mp->m_resblks_avail += delta;
}
mp->m_resblks = request;
mp->m_resblks_avail += delta;
}
@@
-571,7
+565,7
@@
out:
outval->resblks = mp->m_resblks;
outval->resblks_avail = mp->m_resblks_avail;
}
outval->resblks = mp->m_resblks;
outval->resblks_avail = mp->m_resblks_avail;
}
-
XFS_SB_UNLOCK(mp, s
);
+
spin_unlock(&mp->m_sb_lock
);
if (fdblks_delta) {
/*
if (fdblks_delta) {
/*
@@
-592,7
+586,6
@@
out:
if (error == ENOSPC)
goto retry;
}
if (error == ENOSPC)
goto retry;
}
-
return 0;
}
return 0;
}
@@
-628,14
+621,13
@@
xfs_fs_goingdown(
{
switch (inflags) {
case XFS_FSOP_GOING_FLAGS_DEFAULT: {
{
switch (inflags) {
case XFS_FSOP_GOING_FLAGS_DEFAULT: {
- struct bhv_vfs *vfsp = XFS_MTOVFS(mp);
- struct super_block *sb = freeze_bdev(vfsp->vfs_super->s_bdev);
+ struct super_block *sb = freeze_bdev(mp->m_super->s_bdev);
if (sb && !IS_ERR(sb)) {
xfs_force_shutdown(mp, SHUTDOWN_FORCE_UMOUNT);
thaw_bdev(sb->s_bdev, sb);
}
if (sb && !IS_ERR(sb)) {
xfs_force_shutdown(mp, SHUTDOWN_FORCE_UMOUNT);
thaw_bdev(sb->s_bdev, sb);
}
-
+
break;
}
case XFS_FSOP_GOING_FLAGS_LOGFLUSH:
break;
}
case XFS_FSOP_GOING_FLAGS_LOGFLUSH: