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 --- |