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. And kmem_xattrs is too close to kmem_xattr, kmem_xattr_list is not pron of typo. -hd > +} > + [...] > @@ -559,10 +551,7 @@ static void shmem_evict_inode(struct inode *inode) > } else > kfree(info->symlink); > > - list_for_each_entry_safe(xattr, nxattr, &info->xattr_list, list) { > - kfree(xattr->name); > - kfree(xattr); > - } > + kmem_xattrs_free(&info->xattrs); > BUG_ON(inode->i_blocks); > shmem_free_inode(inode->i_sb); > end_writeback(inode); -- 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