summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-07-05 23:09:37 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-07-05 23:09:37 +0000
commitaba344fdfed81b2c03d6114c54cfd73a486aa10b (patch)
treed032d8430bf1234c3ecc6f6330d6de6e887e5963 /kernel
parent40c138bfc6d37dbff5339f84575db1e3cec6e34e (diff)
Merge with Linux 2.3.9.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/acct.c2
-rw-r--r--kernel/fork.c13
-rw-r--r--kernel/ksyms.c10
-rw-r--r--kernel/sysctl.c9
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 },