Hillf Danton wrote: > On Thu, Mar 1, 2012 at 2:17 PM, Li Zefan <lizf@xxxxxxxxxxxxxx> wrote: >> +/* >> + * free all the xattrs >> + */ >> +void kmem_xattrs_free(struct kmem_xattrs *xattrs) >> +{ >> + struct kmem_xattr *xattr, *node; >> + >> + spin_lock(&xattrs->lock); >> + list_for_each_entry_safe(xattr, node, &xattrs->head, list) { >> + kfree(xattr->name); >> + kfree(xattr); >> + } >> + spin_unlock(&xattrs->lock); > > In your work it is a library function, operations on &xattrs->head > are no longer allowed, say list_empty(), after it called, though I > dunno if such operations exist. > I'd prefer to make it safer to use, so I'll re-init the list head after freeing all the list items. > And kmem_xattrs is too close to kmem_xattr, kmem_xattr_list > is not pron of typo. > Then you won't pass compile. ;) kmem_xattr_list exposed the data structure we used internally. We might change to use an rbtree. -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html