binfmt_misc.c (0a1340c185734a57fbf4775927966ad4a1347b02) binfmt_misc.c (8e18e2941c53416aa219708e7dcad21fb4bd6794)
1/*
2 * binfmt_misc.c
3 *
4 * Copyright (C) 1997 Richard G�nther
5 *
6 * binfmt_misc detects binaries via a magic or filename extension and invokes
7 * a specified wrapper. This should obsolete binfmt_java, binfmt_em86 and
8 * binfmt_mz.

--- 503 unchanged lines hidden (view full) ---

512 inode->i_atime = inode->i_mtime = inode->i_ctime =
513 current_fs_time(inode->i_sb);
514 }
515 return inode;
516}
517
518static void bm_clear_inode(struct inode *inode)
519{
1/*
2 * binfmt_misc.c
3 *
4 * Copyright (C) 1997 Richard G�nther
5 *
6 * binfmt_misc detects binaries via a magic or filename extension and invokes
7 * a specified wrapper. This should obsolete binfmt_java, binfmt_em86 and
8 * binfmt_mz.

--- 503 unchanged lines hidden (view full) ---

512 inode->i_atime = inode->i_mtime = inode->i_ctime =
513 current_fs_time(inode->i_sb);
514 }
515 return inode;
516}
517
518static void bm_clear_inode(struct inode *inode)
519{
520 kfree(inode->u.generic_ip);
520 kfree(inode->i_private);
521}
522
523static void kill_node(Node *e)
524{
525 struct dentry *dentry;
526
527 write_lock(&entries_lock);
528 dentry = e->dentry;

--- 11 unchanged lines hidden (view full) ---

540 }
541}
542
543/* /<entry> */
544
545static ssize_t
546bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
547{
521}
522
523static void kill_node(Node *e)
524{
525 struct dentry *dentry;
526
527 write_lock(&entries_lock);
528 dentry = e->dentry;

--- 11 unchanged lines hidden (view full) ---

540 }
541}
542
543/* /<entry> */
544
545static ssize_t
546bm_entry_read(struct file * file, char __user * buf, size_t nbytes, loff_t *ppos)
547{
548 Node *e = file->f_dentry->d_inode->u.generic_ip;
548 Node *e = file->f_dentry->d_inode->i_private;
549 loff_t pos = *ppos;
550 ssize_t res;
551 char *page;
552 int len;
553
554 if (!(page = (char*) __get_free_page(GFP_KERNEL)))
555 return -ENOMEM;
556

--- 17 unchanged lines hidden (view full) ---

574 free_page((unsigned long) page);
575 return res;
576}
577
578static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
579 size_t count, loff_t *ppos)
580{
581 struct dentry *root;
549 loff_t pos = *ppos;
550 ssize_t res;
551 char *page;
552 int len;
553
554 if (!(page = (char*) __get_free_page(GFP_KERNEL)))
555 return -ENOMEM;
556

--- 17 unchanged lines hidden (view full) ---

574 free_page((unsigned long) page);
575 return res;
576}
577
578static ssize_t bm_entry_write(struct file *file, const char __user *buffer,
579 size_t count, loff_t *ppos)
580{
581 struct dentry *root;
582 Node *e = file->f_dentry->d_inode->u.generic_ip;
582 Node *e = file->f_dentry->d_inode->i_private;
583 int res = parse_command(buffer, count);
584
585 switch (res) {
586 case 1: clear_bit(Enabled, &e->flags);
587 break;
588 case 2: set_bit(Enabled, &e->flags);
589 break;
590 case 3: root = dget(file->f_vfsmnt->mnt_sb->s_root);

--- 50 unchanged lines hidden (view full) ---

641 err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count);
642 if (err) {
643 iput(inode);
644 inode = NULL;
645 goto out2;
646 }
647
648 e->dentry = dget(dentry);
583 int res = parse_command(buffer, count);
584
585 switch (res) {
586 case 1: clear_bit(Enabled, &e->flags);
587 break;
588 case 2: set_bit(Enabled, &e->flags);
589 break;
590 case 3: root = dget(file->f_vfsmnt->mnt_sb->s_root);

--- 50 unchanged lines hidden (view full) ---

641 err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count);
642 if (err) {
643 iput(inode);
644 inode = NULL;
645 goto out2;
646 }
647
648 e->dentry = dget(dentry);
649 inode->u.generic_ip = e;
649 inode->i_private = e;
650 inode->i_fop = &bm_entry_operations;
651
652 d_instantiate(dentry, inode);
653 write_lock(&entries_lock);
654 list_add(&e->list, &entries);
655 write_unlock(&entries_lock);
656
657 err = 0;

--- 123 unchanged lines hidden ---
650 inode->i_fop = &bm_entry_operations;
651
652 d_instantiate(dentry, inode);
653 write_lock(&entries_lock);
654 list_add(&e->list, &entries);
655 write_unlock(&entries_lock);
656
657 err = 0;

--- 123 unchanged lines hidden ---