627 return -ENOMEM;
628}
629
630static int
631__rpc_rmdir(struct inode *dir, struct dentry *dentry)
632{
633 int error;
634 error = simple_rmdir(dir, dentry);
635 if (!error)
636 d_delete(dentry);
637 return error;
638}
639
640static struct dentry *
641rpc_lookup_create(struct dentry *parent, const char *name, int len, int exclusive)
642{
643 struct inode *dir = parent->d_inode;
644 struct dentry *dentry;
645
646 mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT);
647 dentry = lookup_one_len(name, parent, len);
648 if (IS_ERR(dentry))
649 goto out_err;
650 if (!dentry->d_inode)
651 dentry->d_op = &rpc_dentry_operations;
652 else if (exclusive) {
653 dput(dentry);
654 dentry = ERR_PTR(-EEXIST);
655 goto out_err;
656 }
657 return dentry;
658out_err:
659 mutex_unlock(&dir->i_mutex);
660 return dentry;
661}
662
663static struct dentry *
664rpc_lookup_negative(char *path, struct nameidata *nd)
665{
666 struct dentry *dentry;
667 int error;