diff options
| author | Dipankar Sarma <dipankar@in.ibm.com> | 2005-09-16 22:28:13 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-09-17 14:50:02 -0400 |
| commit | 4fb3a53860cee2aaaf81186c451b7da0b95b45c1 (patch) | |
| tree | db66ba7d3886644729707586aed781c445e12c16 /kernel | |
| parent | af4e5a218e18ad588d60a4f9d6f8fb5db1a32587 (diff) | |
[PATCH] files: fix preemption issues
With the new fdtable locking rules, you have to protect fdtable with either
->file_lock or rcu_read_lock/unlock(). There are some places where we
aren't doing either. This patch fixes those places.
Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/exit.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 6d2089a1bce7..ee6d8b8abef5 100644 --- a/kernel/exit.c +++ b/kernel/exit.c | |||
| @@ -371,6 +371,12 @@ static inline void close_files(struct files_struct * files) | |||
| 371 | struct fdtable *fdt; | 371 | struct fdtable *fdt; |
| 372 | 372 | ||
| 373 | j = 0; | 373 | j = 0; |
| 374 | |||
| 375 | /* | ||
| 376 | * It is safe to dereference the fd table without RCU or | ||
| 377 | * ->file_lock because this is the last reference to the | ||
| 378 | * files structure. | ||
| 379 | */ | ||
| 374 | fdt = files_fdtable(files); | 380 | fdt = files_fdtable(files); |
| 375 | for (;;) { | 381 | for (;;) { |
| 376 | unsigned long set; | 382 | unsigned long set; |
