|
@@ -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);
|
|
*/
|
|
*/
|
|
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);
|
|
|
|
|