]> Pileus Git - ~andy/linux/blobdiff - fs/configfs/dir.c
configfs: don't bother with checks for mkdir/rmdir/unlink/symlink in root
[~andy/linux] / fs / configfs / dir.c
index 5ddd7ebd9dcd2156ce6a206fc5ba24c47c1c308a..b0fbcbeb03ee6d09ac6ccef6dbedcd1b9e9874c1 100644 (file)
@@ -1183,11 +1183,6 @@ static int configfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode
        struct module *subsys_owner = NULL, *new_item_owner = NULL;
        char *name;
 
-       if (dentry->d_parent == configfs_sb->s_root) {
-               ret = -EPERM;
-               goto out;
-       }
-
        sd = dentry->d_parent->d_fsdata;
 
        /*
@@ -1359,9 +1354,6 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
        struct module *subsys_owner = NULL, *dead_item_owner = NULL;
        int ret;
 
-       if (dentry->d_parent == configfs_sb->s_root)
-               return -EPERM;
-
        sd = dentry->d_fsdata;
        if (sd->s_type & CONFIGFS_USET_DEFAULT)
                return -EPERM;
@@ -1459,6 +1451,11 @@ const struct inode_operations configfs_dir_inode_operations = {
        .setattr        = configfs_setattr,
 };
 
+const struct inode_operations configfs_root_inode_operations = {
+       .lookup         = configfs_lookup,
+       .setattr        = configfs_setattr,
+};
+
 #if 0
 int configfs_rename_dir(struct config_item * item, const char *new_name)
 {