diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-04-27 04:55:53 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-04-27 04:55:53 -0400 |
commit | 7894eaf291238a62a565e9e9777483beeb00eeae (patch) | |
tree | 43c08830d2030d39d719f3f3d54a0e9b36554770 /fs/locks.c | |
parent | 9e73972cef1c0961c78b0e0b61c4ecc275b29f04 (diff) | |
parent | acc696d93dcf993dec123d69d599979e1456ffec (diff) |
Merge branch 'upstream' into irq-pio
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); |