diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-04-20 18:36:05 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-04-20 18:36:05 -0400 |
commit | 857c68f733eea07f11a061caea43a38fed61adb7 (patch) | |
tree | 4567a9e91f717b22143ac1ccb0fb5323ac15afd3 /fs/locks.c | |
parent | 4741c336d27dec3ea68a35659abb8dc82b142388 (diff) | |
parent | 402a26f0c040077ed6f941eefac5a6971f0d5f40 (diff) |
Merge branch 'master'
Diffstat (limited to 'fs/locks.c')
-rw-r--r-- | fs/locks.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/locks.c b/fs/locks.c index dda83d6cd48b..efad798824dc 100644 --- a/fs/locks.c +++ b/fs/locks.c @@ -2230,7 +2230,12 @@ void steal_locks(fl_owner_t from) lock_kernel(); j = 0; - rcu_read_lock(); + + /* + * We are not taking a ref to the file structures, so + * we need to acquire ->file_lock. + */ + spin_lock(&files->file_lock); fdt = files_fdtable(files); for (;;) { unsigned long set; @@ -2248,7 +2253,7 @@ void steal_locks(fl_owner_t from) set >>= 1; } } - rcu_read_unlock(); + spin_unlock(&files->file_lock); unlock_kernel(); } EXPORT_SYMBOL(steal_locks); |