提交 72f98e72 编写于 作者: A Arnd Bergmann

locks: turn lock_flocks into a spinlock

Nothing depends on lock_flocks using the BKL
any more, so we can do the switch over to
a private spinlock.
Signed-off-by: NArnd Bergmann <arnd@arndb.de>
上级 f7347ce4
...@@ -50,7 +50,6 @@ endif # BLOCK ...@@ -50,7 +50,6 @@ endif # BLOCK
config FILE_LOCKING config FILE_LOCKING
bool "Enable POSIX file locking API" if EMBEDDED bool "Enable POSIX file locking API" if EMBEDDED
default y default y
select BKL # while lockd still uses it.
help help
This option enables standard file locking support, required This option enables standard file locking support, required
for filesystems like NFS and for the flock() system for filesystems like NFS and for the flock() system
......
...@@ -142,6 +142,7 @@ int lease_break_time = 45; ...@@ -142,6 +142,7 @@ int lease_break_time = 45;
static LIST_HEAD(file_lock_list); static LIST_HEAD(file_lock_list);
static LIST_HEAD(blocked_list); static LIST_HEAD(blocked_list);
static DEFINE_SPINLOCK(file_lock_lock);
/* /*
* Protects the two list heads above, plus the inode->i_flock list * Protects the two list heads above, plus the inode->i_flock list
...@@ -149,13 +150,13 @@ static LIST_HEAD(blocked_list); ...@@ -149,13 +150,13 @@ static LIST_HEAD(blocked_list);
*/ */
void lock_flocks(void) void lock_flocks(void)
{ {
lock_kernel(); spin_lock(&file_lock_lock);
} }
EXPORT_SYMBOL_GPL(lock_flocks); EXPORT_SYMBOL_GPL(lock_flocks);
void unlock_flocks(void) void unlock_flocks(void)
{ {
unlock_kernel(); spin_unlock(&file_lock_lock);
} }
EXPORT_SYMBOL_GPL(unlock_flocks); EXPORT_SYMBOL_GPL(unlock_flocks);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册