down(&parent->d_inode->i_sem); if (dentry->d_inode) { rpc_close_pipes(dentry->d_inode); rpc_inode_setowner(dentry->d_inode, NULL); simple_rmdir(parent->d_inode, dentry); } up(&parent->d_inode->i_sem);  inode_dir_notify(parent->d_inode, DN_DELETE); rpc_put_mount();
error = __rpc_rmdir(dir, dentry); dput(dentry); out_release: up(&dir->i_sem); rpc_release_path(&nd); return error;
rpc_rmdir(struct dentry *dentry){	struct dentry *parent = dentry->d_parent;	rpc_depopulate(dentry);	down(&parent->d_inode->i_sem);	if (dentry->d_inode) {		rpc_close_pipes(dentry->d_inode);		rpc_inode_setowner(dentry->d_inode, NULL);		simple_rmdir(parent->d_inode, dentry);	}	up(&parent->d_inode->i_sem);	inode_dir_notify(parent->d_inode, DN_DELETE);	rpc_put_mount();}