On Fri, 2011-04-01 at 20:03 +0530, Srikar Dronamraju wrote: > +static int remove_uprobe(struct mm_struct *mm, struct uprobe *uprobe) > +{ > + int ret = 0; > + > + /*TODO: remove breakpoint */ > + if (!ret) > + atomic_dec(&mm->uprobes_count); > + > + return ret; > +} > +static void delete_uprobe(struct mm_struct *mm, struct uprobe *uprobe) > +{ > + down_read(&mm->mmap_sem); > + remove_uprobe(mm, uprobe); > + list_del(&mm->uprobes_list); > + up_read(&mm->mmap_sem); > + mmput(mm); > +} > +static void erase_uprobe(struct uprobe *uprobe) > +{ > + unsigned long flags; > + > + synchronize_sched(); > + spin_lock_irqsave(&treelock, flags); > + rb_erase(&uprobe->rb_node, &uprobes_tree); > + spin_unlock_irqrestore(&treelock, flags); > + iput(uprobe->inode); > +} remove,delete,erase.. head spins.. ;-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href