--On 18 October 2006 7:57:06 AM +1000 David Chinner <dgc@xxxxxxx> wrote:
On Tue, Oct 17, 2006 at 05:13:01PM +1000, Tim Shimmin wrote:
--On 17 October 2006 10:50:38 AM +1000 David Chinner <dgc@xxxxxxx> wrote:
> Fix them - inline functions in header files should always be "static
> inline". Inline functions in .c files should always be static as
> well - if they need to be accessed from different source files then
> they need to be in header files. Hence "STATIC inline" is broken
> code and should be fixed anyway. Luckily, there are very few of
> these to fix and they are all in .c files:
> chook 137% grep -rIw "STATIC inline" fs/xfs | wc -l
So you are saying that "static inline"s should always be.
So for CONFIG_XFS_DEBUG where we define STATIC and so make static
disappear for uses of STATIC, we will no longer touch these
"static inline" functions.
Yup. The function will still get inlined, so changing it's scope on
debug builds doesn't provide any benefit IMO. FWIW, for debug
builds we probably want noinline....
Yep. That's what I was meaning.
On debug I want the STATIC_INLINE's to go away (well, noinline),
so that I can see the funcs in the debug trace.
I thought that for debug, we could stop them from being inline
for easier debugging. We could have a STATIC_INLINE :-)
We could, but I don't think it gains us anything.
It gives us what we said above, i.e. on debug they become noinline.
And like Russell said, it makes it clearer what is happening.
STATIC -> static noinline
STATIC_INLINE -> static inline
STATIC -> noinline
STATIC_INLINE -> noinline
Although for STATIC_INLINE in headers, it won't work on debug b/c of
multiple definitions. D'oh.