rem: if (atomic_add(&f->ref_count, -1) == 1) { if (f->ops->fd_free) f->ops->fd_free(f); kfree(f);
add: if (atomic_add(&descriptor->ref_count, -1) == 1) { if (descriptor->ops->fd_close) descriptor->ops->fd_close(descriptor); if (descriptor->ops->fd_free) descriptor->ops->fd_free(descriptor);  kfree(descriptor);
context: put_fd(struct file_descriptor *f){	/* Run a cleanup (fd_free) routine if there is one and free structure, but only	 * if we've just removed the final reference to it :)	 */	if (atomic_add(&f->ref_count, -1) == 1) {		if (f->ops->fd_free)			f->ops->fd_free(f);		kfree(f);	}}