On Mon, 20 Aug 2012 15:05:24 -0700 Michel Lespinasse <walken@xxxxxxxxxx> wrote: > Add __rb_change_child() as an inline helper function to replace code that > would otherwise be duplicated 4 times in the source. > > No changes to binary size or speed. > > ... > > --- a/lib/rbtree.c > +++ b/lib/rbtree.c > @@ -66,6 +66,19 @@ static inline struct rb_node *rb_red_parent(struct rb_node *red) > return (struct rb_node *)red->__rb_parent_color; > } > > +static inline void > +__rb_change_child(struct rb_node *old, struct rb_node *new, > + struct rb_node *parent, struct rb_root *root) > +{ > + if (parent) { > + if (parent->rb_left == old) > + parent->rb_left = new; > + else > + parent->rb_right = new; > + } else > + root->rb_node = new; > +} I'm inclined to agree with Peter here - "inline" is now a vague, pathetic and useless thing. The problem is that the reader just doesn't *know* whether or not the writer really wanted it to be inlined. If we have carefully made a decision to inline a function, we should (now) use __always_inline. If we have carefully made a decision to not inline a function, we should use noinline. If we don't care, we should omit all such markings. This leaves no place for "inline"? Marking it noinline shrinks the text by 60-odd bytes. Given the number of args, my gut feel is that this will be slower, despite the cache benefit. But that might be wrong. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>