rem: descriptor->ops = &attr_ops;
add: descriptor->ops = &gAttributeOps; break; case FDTYPE_ATTR_DIR: descriptor->ops = &gAttributeDirectoryOps; break; case FDTYPE_INDEX_DIR: descriptor->ops = &gIndexDirectoryOps;
context: get_new_fd(int type, struct vnode *vnode, fs_cookie cookie, int openMode, bool kernel){	struct file_descriptor *descriptor;	int fd;	descriptor = alloc_fd();	if (!descriptor)		return B_NO_MEMORY;	descriptor->vnode = vnode;	descriptor->cookie = cookie;	switch (type) {		case FDTYPE_FILE:			descriptor->ops = &file_ops;			break;		case FDTYPE_DIR:			descriptor->ops = &dir_ops;			break;		case FDTYPE_ATTR:			descriptor->ops = &attr_ops;			break;		default:			// ToDo: perhaps we should better panic here...			descriptor->ops = NULL;			break;	}	descriptor->type = type;	descriptor->open_mode = openMode;	fd = new_fd(get_current_io_context(kernel), descriptor);	if (fd < 0) {		kfree(descriptor);		return B_NO_MORE_FDS;	}	return fd;}