Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
[powerpc.git] / security / inode.c
index a596450..98a0df5 100644 (file)
@@ -135,11 +135,11 @@ static int fill_super(struct super_block *sb, void *data, int silent)
        return simple_fill_super(sb, SECURITYFS_MAGIC, files);
 }
 
-static struct super_block *get_sb(struct file_system_type *fs_type,
-                                       int flags, const char *dev_name,
-                                       void *data)
+static int get_sb(struct file_system_type *fs_type,
+                 int flags, const char *dev_name,
+                 void *data, struct vfsmount *mnt)
 {
-       return get_sb_single(fs_type, flags, data, fill_super);
+       return get_sb_single(fs_type, flags, data, fill_super, mnt);
 }
 
 static struct file_system_type fs_type = {
@@ -172,7 +172,7 @@ static int create_by_name(const char *name, mode_t mode,
                return -EFAULT;
        }
 
-       down(&parent->d_inode->i_sem);
+       mutex_lock(&parent->d_inode->i_mutex);
        *dentry = lookup_one_len(name, parent, strlen(name));
        if (!IS_ERR(dentry)) {
                if ((mode & S_IFMT) == S_IFDIR)
@@ -181,7 +181,7 @@ static int create_by_name(const char *name, mode_t mode,
                        error = create(parent->d_inode, *dentry, mode);
        } else
                error = PTR_ERR(dentry);
-       up(&parent->d_inode->i_sem);
+       mutex_unlock(&parent->d_inode->i_mutex);
 
        return error;
 }
@@ -224,7 +224,7 @@ struct dentry *securityfs_create_file(const char *name, mode_t mode,
 
        pr_debug("securityfs: creating file '%s'\n",name);
 
-       error = simple_pin_fs("securityfs", &mount, &mount_count);
+       error = simple_pin_fs(&fs_type, &mount, &mount_count);
        if (error) {
                dentry = ERR_PTR(error);
                goto exit;
@@ -302,7 +302,7 @@ void securityfs_remove(struct dentry *dentry)
        if (!parent || !parent->d_inode)
                return;
 
-       down(&parent->d_inode->i_sem);
+       mutex_lock(&parent->d_inode->i_mutex);
        if (positive(dentry)) {
                if (dentry->d_inode) {
                        if (S_ISDIR(dentry->d_inode->i_mode))
@@ -312,7 +312,7 @@ void securityfs_remove(struct dentry *dentry)
                        dput(dentry);
                }
        }
-       up(&parent->d_inode->i_sem);
+       mutex_unlock(&parent->d_inode->i_mutex);
        simple_release_fs(&mount, &mount_count);
 }
 EXPORT_SYMBOL_GPL(securityfs_remove);