diff options
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/acct.c | 2 | ||||
-rw-r--r-- | kernel/fork.c | 13 | ||||
-rw-r--r-- | kernel/ksyms.c | 10 | ||||
-rw-r--r-- | kernel/sysctl.c | 9 |
4 files changed, 18 insertions, 16 deletions
diff --git a/kernel/acct.c b/kernel/acct.c index c0f447eae..63ee87150 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -276,7 +276,7 @@ static int do_acct_process(long exitcode, struct file *file) */ if (!file) return 0; - file->f_count++; + atomic_inc(&file->f_count); if (!check_free_space(file)) { fput(file); return 0; diff --git a/kernel/fork.c b/kernel/fork.c index bf44bd04c..7534f1d91 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -249,7 +249,7 @@ static inline int dup_mmap(struct mm_struct * mm) tmp->vm_next = NULL; file = tmp->vm_file; if (file) { - file->f_count++; + atomic_inc(&file->f_count); if (tmp->vm_flags & VM_DENYWRITE) file->f_dentry->d_inode->i_writecount--; @@ -474,6 +474,7 @@ static int copy_files(unsigned long clone_flags, struct task_struct * tsk) if (!new_fds) goto out_release; + newf->file_lock = RW_LOCK_UNLOCKED; atomic_set(&newf->count, 1); newf->max_fds = NR_OPEN; newf->fd = new_fds; @@ -485,7 +486,7 @@ static int copy_files(unsigned long clone_flags, struct task_struct * tsk) struct file *f = *old_fds++; *new_fds = f; if (f) - f->f_count++; + atomic_inc(&f->f_count); new_fds++; } /* This is long word aligned thus could use a optimized version */ @@ -556,13 +557,14 @@ int do_fork(unsigned long clone_flags, unsigned long usp, struct pt_regs *regs) if (p->user) { if (atomic_read(&p->user->count) >= p->rlim[RLIMIT_NPROC].rlim_cur) goto bad_fork_free; + atomic_inc(&p->user->count); } { struct task_struct **tslot; tslot = find_empty_process(); if (!tslot) - goto bad_fork_free; + goto bad_fork_cleanup_count; p->tarray_ptr = tslot; *tslot = p; nr = tslot - &task[0]; @@ -666,8 +668,6 @@ int do_fork(unsigned long clone_flags, unsigned long usp, struct pt_regs *regs) write_unlock_irq(&tasklist_lock); nr_tasks++; - if (p->user) - atomic_inc(&p->user->count); p->next_run = NULL; p->prev_run = NULL; @@ -695,6 +695,9 @@ bad_fork_cleanup: __MOD_DEC_USE_COUNT(p->binfmt->module); add_free_taskslot(p->tarray_ptr); +bad_fork_cleanup_count: + if (p->user) + free_uid(p); bad_fork_free: free_task_struct(p); goto bad_fork; diff --git a/kernel/ksyms.c b/kernel/ksyms.c index 0d4e2bee2..04fd2517a 100644 --- a/kernel/ksyms.c +++ b/kernel/ksyms.c @@ -135,6 +135,7 @@ EXPORT_SYMBOL(d_instantiate); EXPORT_SYMBOL(d_alloc); EXPORT_SYMBOL(d_lookup); EXPORT_SYMBOL(d_path); +EXPORT_SYMBOL(__mark_buffer_dirty); EXPORT_SYMBOL(__mark_inode_dirty); EXPORT_SYMBOL(get_empty_filp); EXPORT_SYMBOL(init_private_file); @@ -162,11 +163,16 @@ EXPORT_SYMBOL(__brelse); EXPORT_SYMBOL(__bforget); EXPORT_SYMBOL(ll_rw_block); EXPORT_SYMBOL(__wait_on_buffer); -EXPORT_SYMBOL(mark_buffer_uptodate); EXPORT_SYMBOL(add_blkdev_randomness); +EXPORT_SYMBOL(block_read_full_page); +EXPORT_SYMBOL(block_write_full_page); +EXPORT_SYMBOL(block_write_partial_page); +EXPORT_SYMBOL(block_flushpage); EXPORT_SYMBOL(generic_file_read); EXPORT_SYMBOL(generic_file_write); EXPORT_SYMBOL(generic_file_mmap); +EXPORT_SYMBOL(page_hash_bits); +EXPORT_SYMBOL(page_hash_table); EXPORT_SYMBOL(file_lock_table); EXPORT_SYMBOL(posix_lock_file); EXPORT_SYMBOL(posix_test_lock); @@ -221,8 +227,8 @@ EXPORT_SYMBOL(resetup_one_dev); EXPORT_SYMBOL(unplug_device); EXPORT_SYMBOL(make_request); EXPORT_SYMBOL(tq_disk); -EXPORT_SYMBOL(find_buffer); EXPORT_SYMBOL(init_buffer); +EXPORT_SYMBOL(refile_buffer); EXPORT_SYMBOL(max_sectors); EXPORT_SYMBOL(max_readahead); diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 2d4fb7169..d7b460fc9 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -34,7 +34,6 @@ extern int panic_timeout; extern int console_loglevel, C_A_D; extern int bdf_prm[], bdflush_min[], bdflush_max[]; -extern char binfmt_java_interpreter[], binfmt_java_appletviewer[]; extern int sysctl_overcommit_memory; extern int nr_queued_signals, max_queued_signals; @@ -121,7 +120,7 @@ struct inode_operations proc_sys_inode_operations = NULL, /* rename */ NULL, /* readlink */ NULL, /* follow_link */ - NULL, /* bmap */ + NULL, /* get_block */ NULL, /* readpage */ NULL, /* writepage */ NULL, /* flushpage */ @@ -171,12 +170,6 @@ static ctl_table kern_table[] = { {KERN_REALROOTDEV, "real-root-dev", &real_root_dev, sizeof(int), 0644, NULL, &proc_dointvec}, #endif -#ifdef CONFIG_BINFMT_JAVA - {KERN_JAVA_INTERPRETER, "java-interpreter", binfmt_java_interpreter, - 64, 0644, NULL, &proc_dostring, &sysctl_string }, - {KERN_JAVA_APPLETVIEWER, "java-appletviewer", binfmt_java_appletviewer, - 64, 0644, NULL, &proc_dostring, &sysctl_string }, -#endif #ifdef __sparc__ {KERN_SPARC_REBOOT, "reboot-cmd", reboot_command, 256, 0644, NULL, &proc_dostring, &sysctl_string }, |