diff options
author | Nathan Scott <nathans@sgi.com> | 2005-11-01 18:34:53 -0500 |
---|---|---|
committer | Nathan Scott <nathans@sgi.com> | 2005-11-01 18:34:53 -0500 |
commit | d8cc890d4095f1eaa7f411a85051015b21262b12 (patch) | |
tree | e13bec06a94a8dc5552dab733e90ef4f4d41fb8b /fs/xfs/xfs_mount.c | |
parent | aa82daa06198b27963fe3d6ee8035855b29f6524 (diff) |
[XFS] Ondisk format extension for extended attributes (attr2). Basically,
the data/attr forks now grow up/down from either end of the literal area,
rather than dividing the literal area into two chunks and growing both
upward. Means we can now make much more efficient use of the attribute
space, incl. fitting DMF attributes inline in 256 byte inodes, and large
jumps in dbench3 performance numbers. It is self enabling, but can be
forced on/off via the attr2/noattr2 mount options.
SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23835a
Signed-off-by: Nathan Scott <nathans@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_mount.c')
-rw-r--r-- | fs/xfs/xfs_mount.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 12f10d5c3d99..a93ef802db6b 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved. | 2 | * Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved. |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify it | 4 | * This program is free software; you can redistribute it and/or modify it |
5 | * under the terms of version 2 of the GNU General Public License as | 5 | * under the terms of version 2 of the GNU General Public License as |
@@ -584,12 +584,13 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb_t *sbp) | |||
584 | ASSERT(sbp->sb_inodesize >= 256 && sbp->sb_inodesize <= 2048); | 584 | ASSERT(sbp->sb_inodesize >= 256 && sbp->sb_inodesize <= 2048); |
585 | switch (sbp->sb_inodesize) { | 585 | switch (sbp->sb_inodesize) { |
586 | case 256: | 586 | case 256: |
587 | mp->m_attroffset = XFS_LITINO(mp) - XFS_BMDR_SPACE_CALC(2); | 587 | mp->m_attroffset = XFS_LITINO(mp) - |
588 | XFS_BMDR_SPACE_CALC(MINABTPTRS); | ||
588 | break; | 589 | break; |
589 | case 512: | 590 | case 512: |
590 | case 1024: | 591 | case 1024: |
591 | case 2048: | 592 | case 2048: |
592 | mp->m_attroffset = XFS_BMDR_SPACE_CALC(12); | 593 | mp->m_attroffset = XFS_BMDR_SPACE_CALC(6 * MINABTPTRS); |
593 | break; | 594 | break; |
594 | default: | 595 | default: |
595 | ASSERT(0); | 596 | ASSERT(0); |