aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Chinner <dgc@sgi.com>2007-02-10 02:34:56 -0500
committerTim Shimmin <tes@sgi.com>2007-02-10 02:34:56 -0500
commit7989cb8ef5dbc1411d3be48218c7b25ef6e71699 (patch)
tree607efa745911951a30712de44a837c1df952bd3a
parent5e6a07dfe404cd4d8494d842b54706cb007fa04b (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>
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_buf.c24
-rw-r--r--fs/xfs/linux-2.6/xfs_export.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c4
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c16
-rw-r--r--fs/xfs/linux-2.6/xfs_sysctl.c6
-rw-r--r--fs/xfs/linux-2.6/xfs_vnode.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_vnode.h4
-rw-r--r--fs/xfs/quota/xfs_dquot_item.c6
-rw-r--r--fs/xfs/quota/xfs_qm.c6
-rw-r--r--fs/xfs/quota/xfs_qm_bhv.c2
-rw-r--r--fs/xfs/support/debug.h30
-rw-r--r--fs/xfs/xfs_attr.c12
-rw-r--r--fs/xfs/xfs_attr_leaf.c6
-rw-r--r--fs/xfs/xfs_bit.c2
-rw-r--r--fs/xfs/xfs_bmap_btree.c2
-rw-r--r--fs/xfs/xfs_buf_item.c2
-rw-r--r--fs/xfs/xfs_extfree_item.c4
-rw-r--r--fs/xfs/xfs_ialloc.c2
-rw-r--r--fs/xfs/xfs_inode.c2
-rw-r--r--fs/xfs/xfs_inode_item.c2
-rw-r--r--fs/xfs/xfs_mount.c8
23 files changed, 87 insertions, 63 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 7b54461695e2..9761a5befef0 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -249,7 +249,7 @@ xfs_map_blocks(
249 return -error; 249 return -error;
250} 250}
251 251
252STATIC inline int 252STATIC_INLINE int
253xfs_iomap_valid( 253xfs_iomap_valid(
254 xfs_iomap_t *iomapp, 254 xfs_iomap_t *iomapp,
255 loff_t offset) 255 loff_t offset)
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c
index 168eecd8127e..e2bea6a661f0 100644
--- a/fs/xfs/linux-2.6/xfs_buf.c
+++ b/fs/xfs/linux-2.6/xfs_buf.c
@@ -34,13 +34,13 @@
34#include <linux/backing-dev.h> 34#include <linux/backing-dev.h>
35#include <linux/freezer.h> 35#include <linux/freezer.h>
36 36
37STATIC kmem_zone_t *xfs_buf_zone; 37static kmem_zone_t *xfs_buf_zone;
38STATIC kmem_shaker_t xfs_buf_shake; 38static kmem_shaker_t xfs_buf_shake;
39STATIC int xfsbufd(void *); 39STATIC int xfsbufd(void *);
40STATIC int xfsbufd_wakeup(int, gfp_t); 40STATIC int xfsbufd_wakeup(int, gfp_t);
41STATIC void xfs_buf_delwri_queue(xfs_buf_t *, int); 41STATIC void xfs_buf_delwri_queue(xfs_buf_t *, int);
42 42
43STATIC struct workqueue_struct *xfslogd_workqueue; 43static struct workqueue_struct *xfslogd_workqueue;
44struct workqueue_struct *xfsdatad_workqueue; 44struct workqueue_struct *xfsdatad_workqueue;
45 45
46#ifdef XFS_BUF_TRACE 46#ifdef XFS_BUF_TRACE
@@ -139,7 +139,7 @@ page_region_mask(
139 return mask; 139 return mask;
140} 140}
141 141
142STATIC inline void 142STATIC_INLINE void
143set_page_region( 143set_page_region(
144 struct page *page, 144 struct page *page,
145 size_t offset, 145 size_t offset,
@@ -151,7 +151,7 @@ set_page_region(
151 SetPageUptodate(page); 151 SetPageUptodate(page);
152} 152}
153 153
154STATIC inline int 154STATIC_INLINE int
155test_page_region( 155test_page_region(
156 struct page *page, 156 struct page *page,
157 size_t offset, 157 size_t offset,
@@ -171,9 +171,9 @@ typedef struct a_list {
171 struct a_list *next; 171 struct a_list *next;
172} a_list_t; 172} a_list_t;
173 173
174STATIC a_list_t *as_free_head; 174static a_list_t *as_free_head;
175STATIC int as_list_len; 175static int as_list_len;
176STATIC DEFINE_SPINLOCK(as_lock); 176static DEFINE_SPINLOCK(as_lock);
177 177
178/* 178/*
179 * Try to batch vunmaps because they are costly. 179 * Try to batch vunmaps because they are costly.
@@ -1085,7 +1085,7 @@ xfs_buf_iostart(
1085 return status; 1085 return status;
1086} 1086}
1087 1087
1088STATIC __inline__ int 1088STATIC_INLINE int
1089_xfs_buf_iolocked( 1089_xfs_buf_iolocked(
1090 xfs_buf_t *bp) 1090 xfs_buf_t *bp)
1091{ 1091{
@@ -1095,7 +1095,7 @@ _xfs_buf_iolocked(
1095 return 0; 1095 return 0;
1096} 1096}
1097 1097
1098STATIC __inline__ void 1098STATIC_INLINE void
1099_xfs_buf_ioend( 1099_xfs_buf_ioend(
1100 xfs_buf_t *bp, 1100 xfs_buf_t *bp,
1101 int schedule) 1101 int schedule)
@@ -1426,8 +1426,8 @@ xfs_free_bufhash(
1426/* 1426/*
1427 * buftarg list for delwrite queue processing 1427 * buftarg list for delwrite queue processing
1428 */ 1428 */
1429STATIC LIST_HEAD(xfs_buftarg_list); 1429LIST_HEAD(xfs_buftarg_list);
1430STATIC DEFINE_SPINLOCK(xfs_buftarg_lock); 1430static DEFINE_SPINLOCK(xfs_buftarg_lock);
1431 1431
1432STATIC void 1432STATIC void
1433xfs_register_buftarg( 1433xfs_register_buftarg(
diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c
index 5fb75d9151f2..e3a5fedac1ba 100644
--- a/fs/xfs/linux-2.6/xfs_export.c
+++ b/fs/xfs/linux-2.6/xfs_export.c
@@ -24,7 +24,7 @@
24#include "xfs_mount.h" 24#include "xfs_mount.h"
25#include "xfs_export.h" 25#include "xfs_export.h"
26 26
27STATIC struct dentry dotdot = { .d_name.name = "..", .d_name.len = 2, }; 27static struct dentry dotdot = { .d_name.name = "..", .d_name.len = 2, };
28 28
29/* 29/*
30 * XFS encodes and decodes the fileid portion of NFS filehandles 30 * XFS encodes and decodes the fileid portion of NFS filehandles
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index d26f5cd2ba70..cb51dc961355 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -46,7 +46,7 @@ static struct vm_operations_struct xfs_file_vm_ops;
46static struct vm_operations_struct xfs_dmapi_file_vm_ops; 46static struct vm_operations_struct xfs_dmapi_file_vm_ops;
47#endif 47#endif
48 48
49STATIC inline ssize_t 49STATIC_INLINE ssize_t
50__xfs_file_read( 50__xfs_file_read(
51 struct kiocb *iocb, 51 struct kiocb *iocb,
52 const struct iovec *iov, 52 const struct iovec *iov,
@@ -84,7 +84,7 @@ xfs_file_aio_read_invis(
84 return __xfs_file_read(iocb, iov, nr_segs, IO_ISAIO|IO_INVIS, pos); 84 return __xfs_file_read(iocb, iov, nr_segs, IO_ISAIO|IO_INVIS, pos);
85} 85}
86 86
87STATIC inline ssize_t 87STATIC_INLINE ssize_t
88__xfs_file_write( 88__xfs_file_write(
89 struct kiocb *iocb, 89 struct kiocb *iocb,
90 const struct iovec *iov, 90 const struct iovec *iov,
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 3ba814ae3bba..4dd6cb56c2d5 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -250,13 +250,13 @@ xfs_init_security(
250 * 250 *
251 * XXX(hch): nfsd is broken, better fix it instead. 251 * XXX(hch): nfsd is broken, better fix it instead.
252 */ 252 */
253STATIC inline int 253STATIC_INLINE int
254xfs_has_fs_struct(struct task_struct *task) 254xfs_has_fs_struct(struct task_struct *task)
255{ 255{
256 return (task->fs != init_task.fs); 256 return (task->fs != init_task.fs);
257} 257}
258 258
259STATIC inline void 259STATIC void
260xfs_cleanup_inode( 260xfs_cleanup_inode(
261 bhv_vnode_t *dvp, 261 bhv_vnode_t *dvp,
262 bhv_vnode_t *vp, 262 bhv_vnode_t *vp,
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index b93265b7c79c..dab5d3802374 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -58,10 +58,10 @@
58#include <linux/kthread.h> 58#include <linux/kthread.h>
59#include <linux/freezer.h> 59#include <linux/freezer.h>
60 60
61STATIC struct quotactl_ops xfs_quotactl_operations; 61static struct quotactl_ops xfs_quotactl_operations;
62STATIC struct super_operations xfs_super_operations; 62static struct super_operations xfs_super_operations;
63STATIC kmem_zone_t *xfs_vnode_zone; 63static kmem_zone_t *xfs_vnode_zone;
64STATIC kmem_zone_t *xfs_ioend_zone; 64static kmem_zone_t *xfs_ioend_zone;
65mempool_t *xfs_ioend_pool; 65mempool_t *xfs_ioend_pool;
66 66
67STATIC struct xfs_mount_args * 67STATIC struct xfs_mount_args *
@@ -121,7 +121,7 @@ xfs_max_file_offset(
121 return (((__uint64_t)pagefactor) << bitshift) - 1; 121 return (((__uint64_t)pagefactor) << bitshift) - 1;
122} 122}
123 123
124STATIC __inline__ void 124STATIC_INLINE void
125xfs_set_inodeops( 125xfs_set_inodeops(
126 struct inode *inode) 126 struct inode *inode)
127{ 127{
@@ -147,7 +147,7 @@ xfs_set_inodeops(
147 } 147 }
148} 148}
149 149
150STATIC __inline__ void 150STATIC_INLINE void
151xfs_revalidate_inode( 151xfs_revalidate_inode(
152 xfs_mount_t *mp, 152 xfs_mount_t *mp,
153 bhv_vnode_t *vp, 153 bhv_vnode_t *vp,
@@ -873,7 +873,7 @@ xfs_fs_get_sb(
873 mnt); 873 mnt);
874} 874}
875 875
876STATIC struct super_operations xfs_super_operations = { 876static struct super_operations xfs_super_operations = {
877 .alloc_inode = xfs_fs_alloc_inode, 877 .alloc_inode = xfs_fs_alloc_inode,
878 .destroy_inode = xfs_fs_destroy_inode, 878 .destroy_inode = xfs_fs_destroy_inode,
879 .write_inode = xfs_fs_write_inode, 879 .write_inode = xfs_fs_write_inode,
@@ -887,7 +887,7 @@ STATIC struct super_operations xfs_super_operations = {
887 .show_options = xfs_fs_show_options, 887 .show_options = xfs_fs_show_options,
888}; 888};
889 889
890STATIC struct quotactl_ops xfs_quotactl_operations = { 890static struct quotactl_ops xfs_quotactl_operations = {
891 .quota_sync = xfs_fs_quotasync, 891 .quota_sync = xfs_fs_quotasync,
892 .get_xstate = xfs_fs_getxstate, 892 .get_xstate = xfs_fs_getxstate,
893 .set_xstate = xfs_fs_setxstate, 893 .set_xstate = xfs_fs_setxstate,
diff --git a/fs/xfs/linux-2.6/xfs_sysctl.c b/fs/xfs/linux-2.6/xfs_sysctl.c
index af246532fbfb..b1036dd5012d 100644
--- a/fs/xfs/linux-2.6/xfs_sysctl.c
+++ b/fs/xfs/linux-2.6/xfs_sysctl.c
@@ -54,7 +54,7 @@ xfs_stats_clear_proc_handler(
54} 54}
55#endif /* CONFIG_PROC_FS */ 55#endif /* CONFIG_PROC_FS */
56 56
57STATIC ctl_table xfs_table[] = { 57static ctl_table xfs_table[] = {
58 {XFS_RESTRICT_CHOWN, "restrict_chown", &xfs_params.restrict_chown.val, 58 {XFS_RESTRICT_CHOWN, "restrict_chown", &xfs_params.restrict_chown.val,
59 sizeof(int), 0644, NULL, &proc_dointvec_minmax, 59 sizeof(int), 0644, NULL, &proc_dointvec_minmax,
60 &sysctl_intvec, NULL, 60 &sysctl_intvec, NULL,
@@ -136,12 +136,12 @@ STATIC ctl_table xfs_table[] = {
136 {0} 136 {0}
137}; 137};
138 138
139STATIC ctl_table xfs_dir_table[] = { 139static ctl_table xfs_dir_table[] = {
140 {FS_XFS, "xfs", NULL, 0, 0555, xfs_table}, 140 {FS_XFS, "xfs", NULL, 0, 0555, xfs_table},
141 {0} 141 {0}
142}; 142};
143 143
144STATIC ctl_table xfs_root_table[] = { 144static ctl_table xfs_root_table[] = {
145 {CTL_FS, "fs", NULL, 0, 0555, xfs_dir_table}, 145 {CTL_FS, "fs", NULL, 0, 0555, xfs_dir_table},
146 {0} 146 {0}
147}; 147};
diff --git a/fs/xfs/linux-2.6/xfs_vnode.c b/fs/xfs/linux-2.6/xfs_vnode.c
index 553fa731ade5..ada24baf88de 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.c
+++ b/fs/xfs/linux-2.6/xfs_vnode.c
@@ -26,7 +26,7 @@ DEFINE_SPINLOCK(vnumber_lock);
26 */ 26 */
27#define NVSYNC 37 27#define NVSYNC 37
28#define vptosync(v) (&vsync[((unsigned long)v) % NVSYNC]) 28#define vptosync(v) (&vsync[((unsigned long)v) % NVSYNC])
29STATIC wait_queue_head_t vsync[NVSYNC]; 29static wait_queue_head_t vsync[NVSYNC];
30 30
31void 31void
32vn_init(void) 32vn_init(void)
diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h
index 515f5fdea57a..b76118cf4897 100644
--- a/fs/xfs/linux-2.6/xfs_vnode.h
+++ b/fs/xfs/linux-2.6/xfs_vnode.h
@@ -489,14 +489,14 @@ static inline struct bhv_vnode *vn_grab(struct bhv_vnode *vp)
489#define VN_LOCK(vp) mutex_spinlock(&(vp)->v_lock) 489#define VN_LOCK(vp) mutex_spinlock(&(vp)->v_lock)
490#define VN_UNLOCK(vp, s) mutex_spinunlock(&(vp)->v_lock, s) 490#define VN_UNLOCK(vp, s) mutex_spinunlock(&(vp)->v_lock, s)
491 491
492static __inline__ void vn_flagset(struct bhv_vnode *vp, uint flag) 492STATIC_INLINE void vn_flagset(struct bhv_vnode *vp, uint flag)
493{ 493{
494 spin_lock(&vp->v_lock); 494 spin_lock(&vp->v_lock);
495 vp->v_flag |= flag; 495 vp->v_flag |= flag;
496 spin_unlock(&vp->v_lock); 496 spin_unlock(&vp->v_lock);
497} 497}
498 498
499static __inline__ uint vn_flagclr(struct bhv_vnode *vp, uint flag) 499STATIC_INLINE uint vn_flagclr(struct bhv_vnode *vp, uint flag)
500{ 500{
501 uint cleared; 501 uint cleared;
502 502
diff --git a/fs/xfs/quota/xfs_dquot_item.c b/fs/xfs/quota/xfs_dquot_item.c
index 33ad5af386e0..aa3c76a6822c 100644
--- a/fs/xfs/quota/xfs_dquot_item.c
+++ b/fs/xfs/quota/xfs_dquot_item.c
@@ -399,7 +399,7 @@ xfs_qm_dquot_logitem_committing(
399/* 399/*
400 * This is the ops vector for dquots 400 * This is the ops vector for dquots
401 */ 401 */
402STATIC struct xfs_item_ops xfs_dquot_item_ops = { 402static struct xfs_item_ops xfs_dquot_item_ops = {
403 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_dquot_logitem_size, 403 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_dquot_logitem_size,
404 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 404 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
405 xfs_qm_dquot_logitem_format, 405 xfs_qm_dquot_logitem_format,
@@ -606,7 +606,7 @@ xfs_qm_qoffend_logitem_committing(xfs_qoff_logitem_t *qip, xfs_lsn_t commit_lsn)
606 return; 606 return;
607} 607}
608 608
609STATIC struct xfs_item_ops xfs_qm_qoffend_logitem_ops = { 609static struct xfs_item_ops xfs_qm_qoffend_logitem_ops = {
610 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_size, 610 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_size,
611 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 611 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
612 xfs_qm_qoff_logitem_format, 612 xfs_qm_qoff_logitem_format,
@@ -628,7 +628,7 @@ STATIC struct xfs_item_ops xfs_qm_qoffend_logitem_ops = {
628/* 628/*
629 * This is the ops vector shared by all quotaoff-start log items. 629 * This is the ops vector shared by all quotaoff-start log items.
630 */ 630 */
631STATIC struct xfs_item_ops xfs_qm_qoff_logitem_ops = { 631static struct xfs_item_ops xfs_qm_qoff_logitem_ops = {
632 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_size, 632 .iop_size = (uint(*)(xfs_log_item_t*))xfs_qm_qoff_logitem_size,
633 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 633 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
634 xfs_qm_qoff_logitem_format, 634 xfs_qm_qoff_logitem_format,
diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c
index 7c6a3a50379e..db1be5dc4ac2 100644
--- a/fs/xfs/quota/xfs_qm.c
+++ b/fs/xfs/quota/xfs_qm.c
@@ -64,10 +64,10 @@ uint ndquot;
64 64
65kmem_zone_t *qm_dqzone; 65kmem_zone_t *qm_dqzone;
66kmem_zone_t *qm_dqtrxzone; 66kmem_zone_t *qm_dqtrxzone;
67STATIC kmem_shaker_t xfs_qm_shaker; 67static kmem_shaker_t xfs_qm_shaker;
68 68
69STATIC cred_t xfs_zerocr; 69static cred_t xfs_zerocr;
70STATIC xfs_inode_t xfs_zeroino; 70static xfs_inode_t xfs_zeroino;
71 71
72STATIC void xfs_qm_list_init(xfs_dqlist_t *, char *, int); 72STATIC void xfs_qm_list_init(xfs_dqlist_t *, char *, int);
73STATIC void xfs_qm_list_destroy(xfs_dqlist_t *); 73STATIC void xfs_qm_list_destroy(xfs_dqlist_t *);
diff --git a/fs/xfs/quota/xfs_qm_bhv.c b/fs/xfs/quota/xfs_qm_bhv.c
index db8872be8c87..39a99ab5918f 100644
--- a/fs/xfs/quota/xfs_qm_bhv.c
+++ b/fs/xfs/quota/xfs_qm_bhv.c
@@ -384,7 +384,7 @@ xfs_qm_dqrele_null(
384} 384}
385 385
386 386
387STATIC struct xfs_qmops xfs_qmcore_xfs = { 387static struct xfs_qmops xfs_qmcore_xfs = {
388 .xfs_qminit = xfs_qm_newmount, 388 .xfs_qminit = xfs_qm_newmount,
389 .xfs_qmdone = xfs_qm_unmount_quotadestroy, 389 .xfs_qmdone = xfs_qm_unmount_quotadestroy,
390 .xfs_qmmount = xfs_qm_endmount, 390 .xfs_qmmount = xfs_qm_endmount,
diff --git a/fs/xfs/support/debug.h b/fs/xfs/support/debug.h
index 4f54dca662a8..2a70cc605ae3 100644
--- a/fs/xfs/support/debug.h
+++ b/fs/xfs/support/debug.h
@@ -38,13 +38,37 @@ extern void assfail(char *expr, char *f, int l);
38 38
39#ifndef DEBUG 39#ifndef DEBUG
40# define ASSERT(expr) ((void)0) 40# define ASSERT(expr) ((void)0)
41#else 41
42#ifndef STATIC
43# define STATIC static noinline
44#endif
45
46#ifndef STATIC_INLINE
47# define STATIC_INLINE static inline
48#endif
49
50#else /* DEBUG */
51
42# define ASSERT(expr) ASSERT_ALWAYS(expr) 52# define ASSERT(expr) ASSERT_ALWAYS(expr)
43extern unsigned long random(void); 53extern unsigned long random(void);
44#endif
45 54
46#ifndef STATIC 55#ifndef STATIC
47# define STATIC static 56# define STATIC noinline
48#endif 57#endif
49 58
59/*
60 * We stop inlining of inline functions in debug mode.
61 * Unfortunately, this means static inline in header files
62 * get multiple definitions, so they need to remain static.
63 * This then gives tonnes of warnings about unused but defined
64 * functions, so we need to add the unused attribute to prevent
65 * these spurious warnings.
66 */
67#ifndef STATIC_INLINE
68# define STATIC_INLINE static __attribute__ ((unused)) noinline
69#endif
70
71#endif /* DEBUG */
72
73
50#endif /* __XFS_SUPPORT_DEBUG_H__ */ 74#endif /* __XFS_SUPPORT_DEBUG_H__ */
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c
index 9ada7bdbae52..c6c2596e827a 100644
--- a/fs/xfs/xfs_attr.c
+++ b/fs/xfs/xfs_attr.c
@@ -57,9 +57,9 @@
57 */ 57 */
58 58
59#define ATTR_SYSCOUNT 2 59#define ATTR_SYSCOUNT 2
60STATIC struct attrnames posix_acl_access; 60static struct attrnames posix_acl_access;
61STATIC struct attrnames posix_acl_default; 61static struct attrnames posix_acl_default;
62STATIC struct attrnames *attr_system_names[ATTR_SYSCOUNT]; 62static struct attrnames *attr_system_names[ATTR_SYSCOUNT];
63 63
64/*======================================================================== 64/*========================================================================
65 * Function prototypes for the kernel. 65 * Function prototypes for the kernel.
@@ -2477,7 +2477,7 @@ posix_acl_default_exists(
2477 return xfs_acl_vhasacl_default(vp); 2477 return xfs_acl_vhasacl_default(vp);
2478} 2478}
2479 2479
2480STATIC struct attrnames posix_acl_access = { 2480static struct attrnames posix_acl_access = {
2481 .attr_name = "posix_acl_access", 2481 .attr_name = "posix_acl_access",
2482 .attr_namelen = sizeof("posix_acl_access") - 1, 2482 .attr_namelen = sizeof("posix_acl_access") - 1,
2483 .attr_get = posix_acl_access_get, 2483 .attr_get = posix_acl_access_get,
@@ -2486,7 +2486,7 @@ STATIC struct attrnames posix_acl_access = {
2486 .attr_exists = posix_acl_access_exists, 2486 .attr_exists = posix_acl_access_exists,
2487}; 2487};
2488 2488
2489STATIC struct attrnames posix_acl_default = { 2489static struct attrnames posix_acl_default = {
2490 .attr_name = "posix_acl_default", 2490 .attr_name = "posix_acl_default",
2491 .attr_namelen = sizeof("posix_acl_default") - 1, 2491 .attr_namelen = sizeof("posix_acl_default") - 1,
2492 .attr_get = posix_acl_default_get, 2492 .attr_get = posix_acl_default_get,
@@ -2495,7 +2495,7 @@ STATIC struct attrnames posix_acl_default = {
2495 .attr_exists = posix_acl_default_exists, 2495 .attr_exists = posix_acl_default_exists,
2496}; 2496};
2497 2497
2498STATIC struct attrnames *attr_system_names[] = 2498static struct attrnames *attr_system_names[] =
2499 { &posix_acl_access, &posix_acl_default }; 2499 { &posix_acl_access, &posix_acl_default };
2500 2500
2501 2501
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
97STATIC inline attrnames_t * 97STATIC_INLINE attrnames_t *
98xfs_attr_flags_namesp(int flags) 98xfs_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 */
108STATIC inline int 108STATIC_INLINE int
109xfs_attr_namesp_match(int arg_flags, int ondisk_flags) 109xfs_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 */
119STATIC inline int 119STATIC_INLINE int
120xfs_attr_namesp_match_overrides(int arg_flags, int ondisk_flags) 120xfs_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) !=
diff --git a/fs/xfs/xfs_bit.c b/fs/xfs/xfs_bit.c
index 43be6a7e47c6..1afe07f67e3b 100644
--- a/fs/xfs/xfs_bit.c
+++ b/fs/xfs/xfs_bit.c
@@ -29,7 +29,7 @@
29/* 29/*
30 * Index of high bit number in byte, -1 for none set, 0..7 otherwise. 30 * Index of high bit number in byte, -1 for none set, 0..7 otherwise.
31 */ 31 */
32STATIC const char xfs_highbit[256] = { 32static const char xfs_highbit[256] = {
33 -1, 0, 1, 1, 2, 2, 2, 2, /* 00 .. 07 */ 33 -1, 0, 1, 1, 2, 2, 2, 2, /* 00 .. 07 */
34 3, 3, 3, 3, 3, 3, 3, 3, /* 08 .. 0f */ 34 3, 3, 3, 3, 3, 3, 3, 3, /* 08 .. 0f */
35 4, 4, 4, 4, 4, 4, 4, 4, /* 10 .. 17 */ 35 4, 4, 4, 4, 4, 4, 4, 4, /* 10 .. 17 */
diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c
index a7b835bf870a..3a925100e90c 100644
--- a/fs/xfs/xfs_bmap_btree.c
+++ b/fs/xfs/xfs_bmap_btree.c
@@ -1862,7 +1862,7 @@ xfs_bmbt_delete(
1862 * xfs_bmbt_get_startblock, xfs_bmbt_get_blockcount and xfs_bmbt_get_state. 1862 * xfs_bmbt_get_startblock, xfs_bmbt_get_blockcount and xfs_bmbt_get_state.
1863 */ 1863 */
1864 1864
1865STATIC __inline__ void 1865STATIC_INLINE void
1866__xfs_bmbt_get_all( 1866__xfs_bmbt_get_all(
1867 __uint64_t l0, 1867 __uint64_t l0,
1868 __uint64_t l1, 1868 __uint64_t l1,
diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c
index 7a55c248ea70..6c1bddc04e31 100644
--- a/fs/xfs/xfs_buf_item.c
+++ b/fs/xfs/xfs_buf_item.c
@@ -660,7 +660,7 @@ xfs_buf_item_committing(xfs_buf_log_item_t *bip, xfs_lsn_t commit_lsn)
660/* 660/*
661 * This is the ops vector shared by all buf log items. 661 * This is the ops vector shared by all buf log items.
662 */ 662 */
663STATIC struct xfs_item_ops xfs_buf_item_ops = { 663static struct xfs_item_ops xfs_buf_item_ops = {
664 .iop_size = (uint(*)(xfs_log_item_t*))xfs_buf_item_size, 664 .iop_size = (uint(*)(xfs_log_item_t*))xfs_buf_item_size,
665 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 665 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
666 xfs_buf_item_format, 666 xfs_buf_item_format,
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
index 6dba78199faf..3b14427ee123 100644
--- a/fs/xfs/xfs_extfree_item.c
+++ b/fs/xfs/xfs_extfree_item.c
@@ -227,7 +227,7 @@ xfs_efi_item_committing(xfs_efi_log_item_t *efip, xfs_lsn_t lsn)
227/* 227/*
228 * This is the ops vector shared by all efi log items. 228 * This is the ops vector shared by all efi log items.
229 */ 229 */
230STATIC struct xfs_item_ops xfs_efi_item_ops = { 230static struct xfs_item_ops xfs_efi_item_ops = {
231 .iop_size = (uint(*)(xfs_log_item_t*))xfs_efi_item_size, 231 .iop_size = (uint(*)(xfs_log_item_t*))xfs_efi_item_size,
232 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 232 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
233 xfs_efi_item_format, 233 xfs_efi_item_format,
@@ -525,7 +525,7 @@ xfs_efd_item_committing(xfs_efd_log_item_t *efip, xfs_lsn_t lsn)
525/* 525/*
526 * This is the ops vector shared by all efd log items. 526 * This is the ops vector shared by all efd log items.
527 */ 527 */
528STATIC struct xfs_item_ops xfs_efd_item_ops = { 528static struct xfs_item_ops xfs_efd_item_ops = {
529 .iop_size = (uint(*)(xfs_log_item_t*))xfs_efd_item_size, 529 .iop_size = (uint(*)(xfs_log_item_t*))xfs_efd_item_size,
530 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 530 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
531 xfs_efd_item_format, 531 xfs_efd_item_format,
diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c
index a446e5a115c6..b5feb3e77116 100644
--- a/fs/xfs/xfs_ialloc.c
+++ b/fs/xfs/xfs_ialloc.c
@@ -342,7 +342,7 @@ xfs_ialloc_ag_alloc(
342 return 0; 342 return 0;
343} 343}
344 344
345STATIC __inline xfs_agnumber_t 345STATIC_INLINE xfs_agnumber_t
346xfs_ialloc_next_ag( 346xfs_ialloc_next_ag(
347 xfs_mount_t *mp) 347 xfs_mount_t *mp)
348{ 348{
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index 44dfac521285..cd518581a3bb 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -2125,7 +2125,7 @@ xfs_iunlink_remove(
2125 return 0; 2125 return 0;
2126} 2126}
2127 2127
2128static __inline__ int xfs_inode_clean(xfs_inode_t *ip) 2128STATIC_INLINE int xfs_inode_clean(xfs_inode_t *ip)
2129{ 2129{
2130 return (((ip->i_itemp == NULL) || 2130 return (((ip->i_itemp == NULL) ||
2131 !(ip->i_itemp->ili_format.ilf_fields & XFS_ILOG_ALL)) && 2131 !(ip->i_itemp->ili_format.ilf_fields & XFS_ILOG_ALL)) &&
diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c
index a7a92251eb56..565d470a6b4a 100644
--- a/fs/xfs/xfs_inode_item.c
+++ b/fs/xfs/xfs_inode_item.c
@@ -887,7 +887,7 @@ xfs_inode_item_committing(
887/* 887/*
888 * This is the ops vector shared by all buf log items. 888 * This is the ops vector shared by all buf log items.
889 */ 889 */
890STATIC struct xfs_item_ops xfs_inode_item_ops = { 890static struct xfs_item_ops xfs_inode_item_ops = {
891 .iop_size = (uint(*)(xfs_log_item_t*))xfs_inode_item_size, 891 .iop_size = (uint(*)(xfs_log_item_t*))xfs_inode_item_size,
892 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*)) 892 .iop_format = (void(*)(xfs_log_item_t*, xfs_log_iovec_t*))
893 xfs_inode_item_format, 893 xfs_inode_item_format,
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 9dfae18d995f..397730f570b9 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1802,7 +1802,7 @@ xfs_icsb_destroy_counters(
1802 } 1802 }
1803} 1803}
1804 1804
1805STATIC inline void 1805STATIC_INLINE void
1806xfs_icsb_lock_cntr( 1806xfs_icsb_lock_cntr(
1807 xfs_icsb_cnts_t *icsbp) 1807 xfs_icsb_cnts_t *icsbp)
1808{ 1808{
@@ -1811,7 +1811,7 @@ xfs_icsb_lock_cntr(
1811 } 1811 }
1812} 1812}
1813 1813
1814STATIC inline void 1814STATIC_INLINE void
1815xfs_icsb_unlock_cntr( 1815xfs_icsb_unlock_cntr(
1816 xfs_icsb_cnts_t *icsbp) 1816 xfs_icsb_cnts_t *icsbp)
1817{ 1817{
@@ -1819,7 +1819,7 @@ xfs_icsb_unlock_cntr(
1819} 1819}
1820 1820
1821 1821
1822STATIC inline void 1822STATIC_INLINE void
1823xfs_icsb_lock_all_counters( 1823xfs_icsb_lock_all_counters(
1824 xfs_mount_t *mp) 1824 xfs_mount_t *mp)
1825{ 1825{
@@ -1832,7 +1832,7 @@ xfs_icsb_lock_all_counters(
1832 } 1832 }
1833} 1833}
1834 1834
1835STATIC inline void 1835STATIC_INLINE void
1836xfs_icsb_unlock_all_counters( 1836xfs_icsb_unlock_all_counters(
1837 xfs_mount_t *mp) 1837 xfs_mount_t *mp)
1838{ 1838{