diff options
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 073005b1cfb2..cece89f80ab4 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
@@ -521,7 +521,7 @@ void reset_files_struct(struct task_struct *tsk, struct files_struct *files) | |||
521 | } | 521 | } |
522 | EXPORT_SYMBOL(reset_files_struct); | 522 | EXPORT_SYMBOL(reset_files_struct); |
523 | 523 | ||
524 | static void __exit_files(struct task_struct *tsk) | 524 | void exit_files(struct task_struct *tsk) |
525 | { | 525 | { |
526 | struct files_struct * files = tsk->files; | 526 | struct files_struct * files = tsk->files; |
527 | 527 | ||
@@ -533,12 +533,7 @@ static void __exit_files(struct task_struct *tsk) | |||
533 | } | 533 | } |
534 | } | 534 | } |
535 | 535 | ||
536 | void exit_files(struct task_struct *tsk) | 536 | void put_fs_struct(struct fs_struct *fs) |
537 | { | ||
538 | __exit_files(tsk); | ||
539 | } | ||
540 | |||
541 | static void __put_fs_struct(struct fs_struct *fs) | ||
542 | { | 537 | { |
543 | /* No need to hold fs->lock if we are killing it */ | 538 | /* No need to hold fs->lock if we are killing it */ |
544 | if (atomic_dec_and_test(&fs->count)) { | 539 | if (atomic_dec_and_test(&fs->count)) { |
@@ -550,12 +545,7 @@ static void __put_fs_struct(struct fs_struct *fs) | |||
550 | } | 545 | } |
551 | } | 546 | } |
552 | 547 | ||
553 | void put_fs_struct(struct fs_struct *fs) | 548 | void exit_fs(struct task_struct *tsk) |
554 | { | ||
555 | __put_fs_struct(fs); | ||
556 | } | ||
557 | |||
558 | static void __exit_fs(struct task_struct *tsk) | ||
559 | { | 549 | { |
560 | struct fs_struct * fs = tsk->fs; | 550 | struct fs_struct * fs = tsk->fs; |
561 | 551 | ||
@@ -563,15 +553,10 @@ static void __exit_fs(struct task_struct *tsk) | |||
563 | task_lock(tsk); | 553 | task_lock(tsk); |
564 | tsk->fs = NULL; | 554 | tsk->fs = NULL; |
565 | task_unlock(tsk); | 555 | task_unlock(tsk); |
566 | __put_fs_struct(fs); | 556 | put_fs_struct(fs); |
567 | } | 557 | } |
568 | } | 558 | } |
569 | 559 | ||
570 | void exit_fs(struct task_struct *tsk) | ||
571 | { | ||
572 | __exit_fs(tsk); | ||
573 | } | ||
574 | |||
575 | EXPORT_SYMBOL_GPL(exit_fs); | 560 | EXPORT_SYMBOL_GPL(exit_fs); |
576 | 561 | ||
577 | /* | 562 | /* |
@@ -967,8 +952,8 @@ NORET_TYPE void do_exit(long code) | |||
967 | if (group_dead) | 952 | if (group_dead) |
968 | acct_process(); | 953 | acct_process(); |
969 | exit_sem(tsk); | 954 | exit_sem(tsk); |
970 | __exit_files(tsk); | 955 | exit_files(tsk); |
971 | __exit_fs(tsk); | 956 | exit_fs(tsk); |
972 | check_stack_usage(); | 957 | check_stack_usage(); |
973 | exit_thread(); | 958 | exit_thread(); |
974 | cgroup_exit(tsk, 1); | 959 | cgroup_exit(tsk, 1); |