[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>
This commit is contained in:
committed by
Linus Torvalds
parent
af4e5a218e
commit
4fb3a53860
@@ -2218,12 +2218,13 @@ static void
|
||||
pfm_free_fd(int fd, struct file *file)
|
||||
{
|
||||
struct files_struct *files = current->files;
|
||||
struct fdtable *fdt = files_fdtable(files);
|
||||
struct fdtable *fdt;
|
||||
|
||||
/*
|
||||
* there ie no fd_uninstall(), so we do it here
|
||||
*/
|
||||
spin_lock(&files->file_lock);
|
||||
fdt = files_fdtable(files);
|
||||
rcu_assign_pointer(fdt->fd[fd], NULL);
|
||||
spin_unlock(&files->file_lock);
|
||||
|
||||
|
Reference in New Issue
Block a user