projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[PATCH] Chardev checking of overlapping ranges
[deliverable/linux.git]
/
fs
/
binfmt_misc.c
diff --git
a/fs/binfmt_misc.c
b/fs/binfmt_misc.c
index 07a4996cca3f76c03a1a6434decc88f0dacfdc42..1713c48fef5494e5e8ef361a83b5795ecaae4ce9 100644
(file)
--- a/
fs/binfmt_misc.c
+++ b/
fs/binfmt_misc.c
@@
-55,6
+55,7
@@
typedef struct {
} Node;
static DEFINE_RWLOCK(entries_lock);
} Node;
static DEFINE_RWLOCK(entries_lock);
+static struct file_system_type bm_fs_type;
static struct vfsmount *bm_mnt;
static int entry_count;
static struct vfsmount *bm_mnt;
static int entry_count;
@@
-214,10
+215,8
@@
_error:
bprm->interp_flags = 0;
bprm->interp_data = 0;
_unshare:
bprm->interp_flags = 0;
bprm->interp_data = 0;
_unshare:
- if (files) {
- put_files_struct(current->files);
- current->files = files;
- }
+ if (files)
+ reset_files_struct(current, files);
goto _ret;
}
goto _ret;
}
@@
-506,7
+505,6
@@
static struct inode *bm_get_inode(struct super_block *sb, int mode)
inode->i_mode = mode;
inode->i_uid = 0;
inode->i_gid = 0;
inode->i_mode = mode;
inode->i_uid = 0;
inode->i_gid = 0;
- inode->i_blksize = PAGE_CACHE_SIZE;
inode->i_blocks = 0;
inode->i_atime = inode->i_mtime = inode->i_ctime =
current_fs_time(inode->i_sb);
inode->i_blocks = 0;
inode->i_atime = inode->i_mtime = inode->i_ctime =
current_fs_time(inode->i_sb);
@@
-516,7
+514,7
@@
static struct inode *bm_get_inode(struct super_block *sb, int mode)
static void bm_clear_inode(struct inode *inode)
{
static void bm_clear_inode(struct inode *inode)
{
- kfree(inode->
u.generic_ip
);
+ kfree(inode->
i_private
);
}
static void kill_node(Node *e)
}
static void kill_node(Node *e)
@@
-544,7
+542,7
@@
static void kill_node(Node *e)
static ssize_t
bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
{
static ssize_t
bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
{
- Node *e = file->f_dentry->d_inode->
u.generic_ip
;
+ Node *e = file->f_dentry->d_inode->
i_private
;
loff_t pos = *ppos;
ssize_t res;
char *page;
loff_t pos = *ppos;
ssize_t res;
char *page;
@@
-578,7
+576,7
@@
static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
size_t count, loff_t *ppos)
{
struct dentry *root;
size_t count, loff_t *ppos)
{
struct dentry *root;
- Node *e = file->f_dentry->d_inode->
u.generic_ip
;
+ Node *e = file->f_dentry->d_inode->
i_private
;
int res = parse_command(buffer, count);
switch (res) {
int res = parse_command(buffer, count);
switch (res) {
@@
-637,7
+635,7
@@
static ssize_t bm_register_write(struct file *file, const char __user *buffer,
if (!inode)
goto out2;
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;
if (err) {
iput(inode);
inode = NULL;
@@
-645,7
+643,7
@@
static ssize_t bm_register_write(struct file *file, const char __user *buffer,
}
e->dentry = dget(dentry);
}
e->dentry = dget(dentry);
- inode->
u.generic_ip
= e;
+ inode->
i_private
= e;
inode->i_fop = &bm_entry_operations;
d_instantiate(dentry, inode);
inode->i_fop = &bm_entry_operations;
d_instantiate(dentry, inode);
This page took
0.02596 seconds
and
5
git commands to generate.