diff options
author | David Chinner <dgc@sgi.com> | 2007-02-10 02:34:56 -0500 |
---|---|---|
committer | Tim Shimmin <tes@sgi.com> | 2007-02-10 02:34:56 -0500 |
commit | 7989cb8ef5dbc1411d3be48218c7b25ef6e71699 (patch) | |
tree | 607efa745911951a30712de44a837c1df952bd3a /fs/xfs/xfs_attr_leaf.c | |
parent | 5e6a07dfe404cd4d8494d842b54706cb007fa04b (diff) |
[XFS] Keep stack usage down for 4k stacks by using noinline.
gcc-4.1 and more recent aggressively inline static functions which
increases XFS stack usage by ~15% in critical paths. Prevent this from
occurring by adding noinline to the STATIC definition.
Also uninline some functions that are too large to be inlined and were
causing problems with CONFIG_FORCED_INLINING=y.
Finally, clean up all the different users of inline, __inline and
__inline__ and put them under one STATIC_INLINE macro. For debug kernels
the STATIC_INLINE macro uninlines those functions.
SGI-PV: 957159
SGI-Modid: xfs-linux-melb:xfs-kern:27585a
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: David Chatterton <chatz@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_attr_leaf.c')
-rw-r--r-- | fs/xfs/xfs_attr_leaf.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/xfs/xfs_attr_leaf.c b/fs/xfs/xfs_attr_leaf.c index 9719bbef122c..cc4ffa413da4 100644 --- a/fs/xfs/xfs_attr_leaf.c +++ b/fs/xfs/xfs_attr_leaf.c | |||
@@ -94,7 +94,7 @@ STATIC int xfs_attr_leaf_entsize(xfs_attr_leafblock_t *leaf, int index); | |||
94 | * Namespace helper routines | 94 | * Namespace helper routines |
95 | *========================================================================*/ | 95 | *========================================================================*/ |
96 | 96 | ||
97 | STATIC inline attrnames_t * | 97 | STATIC_INLINE attrnames_t * |
98 | xfs_attr_flags_namesp(int flags) | 98 | xfs_attr_flags_namesp(int flags) |
99 | { | 99 | { |
100 | return ((flags & XFS_ATTR_SECURE) ? &attr_secure: | 100 | return ((flags & XFS_ATTR_SECURE) ? &attr_secure: |
@@ -105,7 +105,7 @@ xfs_attr_flags_namesp(int flags) | |||
105 | * If namespace bits don't match return 0. | 105 | * If namespace bits don't match return 0. |
106 | * If all match then return 1. | 106 | * If all match then return 1. |
107 | */ | 107 | */ |
108 | STATIC inline int | 108 | STATIC_INLINE int |
109 | xfs_attr_namesp_match(int arg_flags, int ondisk_flags) | 109 | xfs_attr_namesp_match(int arg_flags, int ondisk_flags) |
110 | { | 110 | { |
111 | return XFS_ATTR_NSP_ONDISK(ondisk_flags) == XFS_ATTR_NSP_ARGS_TO_ONDISK(arg_flags); | 111 | return XFS_ATTR_NSP_ONDISK(ondisk_flags) == XFS_ATTR_NSP_ARGS_TO_ONDISK(arg_flags); |
@@ -116,7 +116,7 @@ xfs_attr_namesp_match(int arg_flags, int ondisk_flags) | |||
116 | * then return 0. | 116 | * then return 0. |
117 | * If all match or are overridable then return 1. | 117 | * If all match or are overridable then return 1. |
118 | */ | 118 | */ |
119 | STATIC inline int | 119 | STATIC_INLINE int |
120 | xfs_attr_namesp_match_overrides(int arg_flags, int ondisk_flags) | 120 | xfs_attr_namesp_match_overrides(int arg_flags, int ondisk_flags) |
121 | { | 121 | { |
122 | if (((arg_flags & ATTR_SECURE) == 0) != | 122 | if (((arg_flags & ATTR_SECURE) == 0) != |