[PATCH] mm/page_alloc: use NULL instead of 0 for ptr
[linux-2.6-microblaze.git] / fs / binfmt_misc.c
index 2568eb4..34ebbc1 100644 (file)
@@ -55,6 +55,7 @@ typedef struct {
 } Node;
 
 static DEFINE_RWLOCK(entries_lock);
+static struct file_system_type bm_fs_type;
 static struct vfsmount *bm_mnt;
 static int entry_count;
 
@@ -203,7 +204,6 @@ static int load_misc_binary(struct linux_binprm *bprm, struct pt_regs *regs)
                goto _error;
 
        if (files) {
-               steal_locks(files);
                put_files_struct(files);
                files = NULL;
        }
@@ -264,7 +264,7 @@ static int unquote(char *from)
        return p - from;
 }
 
-static inline char * check_special_flags (char * sfs, Node * e)
+static char * check_special_flags (char * sfs, Node * e)
 {
        char * p = sfs;
        int cont = 1;
@@ -588,11 +588,11 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
                case 2: set_bit(Enabled, &e->flags);
                        break;
                case 3: root = dget(file->f_vfsmnt->mnt_sb->s_root);
-                       down(&root->d_inode->i_sem);
+                       mutex_lock(&root->d_inode->i_mutex);
 
                        kill_node(e);
 
-                       up(&root->d_inode->i_sem);
+                       mutex_unlock(&root->d_inode->i_mutex);
                        dput(root);
                        break;
                default: return res;
@@ -600,7 +600,7 @@ static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
        return count;
 }
 
-static struct file_operations bm_entry_operations = {
+static const struct file_operations bm_entry_operations = {
        .read           = bm_entry_read,
        .write          = bm_entry_write,
 };
@@ -622,7 +622,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
                return PTR_ERR(e);
 
        root = dget(sb->s_root);
-       down(&root->d_inode->i_sem);
+       mutex_lock(&root->d_inode->i_mutex);
        dentry = lookup_one_len(e->name, root, strlen(e->name));
        err = PTR_ERR(dentry);
        if (IS_ERR(dentry))
@@ -638,7 +638,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
        if (!inode)
                goto out2;
 
-       err = simple_pin_fs("binfmt_misc", &bm_mnt, &entry_count);
+       err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count);
        if (err) {
                iput(inode);
                inode = NULL;
@@ -658,7 +658,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
 out2:
        dput(dentry);
 out:
-       up(&root->d_inode->i_sem);
+       mutex_unlock(&root->d_inode->i_mutex);
        dput(root);
 
        if (err) {
@@ -668,7 +668,7 @@ out:
        return count;
 }
 
-static struct file_operations bm_register_operations = {
+static const struct file_operations bm_register_operations = {
        .write          = bm_register_write,
 };
 
@@ -703,19 +703,19 @@ static ssize_t bm_status_write(struct file * file, const char __user * buffer,
                case 1: enabled = 0; break;
                case 2: enabled = 1; break;
                case 3: root = dget(file->f_vfsmnt->mnt_sb->s_root);
-                       down(&root->d_inode->i_sem);
+                       mutex_lock(&root->d_inode->i_mutex);
 
                        while (!list_empty(&entries))
                                kill_node(list_entry(entries.next, Node, list));
 
-                       up(&root->d_inode->i_sem);
+                       mutex_unlock(&root->d_inode->i_mutex);
                        dput(root);
                default: return res;
        }
        return count;
 }
 
-static struct file_operations bm_status_operations = {
+static const struct file_operations bm_status_operations = {
        .read           = bm_status_read,
        .write          = bm_status_write,
 };
@@ -740,10 +740,10 @@ static int bm_fill_super(struct super_block * sb, void * data, int silent)
        return err;
 }
 
-static struct super_block *bm_get_sb(struct file_system_type *fs_type,
-       int flags, const char *dev_name, void *data)
+static int bm_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, bm_fill_super);
+       return get_sb_single(fs_type, flags, data, bm_fill_super, mnt);
 }
 
 static struct linux_binfmt misc_format = {