|
@@ -986,19 +986,19 @@ static int cifs_oplock_thread(void *dummyarg)
|
|
|
if (try_to_freeze())
|
|
|
continue;
|
|
|
|
|
|
- spin_lock(&GlobalMid_Lock);
|
|
|
- if (list_empty(&GlobalOplock_Q)) {
|
|
|
- spin_unlock(&GlobalMid_Lock);
|
|
|
+ spin_lock(&cifs_oplock_lock);
|
|
|
+ if (list_empty(&cifs_oplock_list)) {
|
|
|
+ spin_unlock(&cifs_oplock_lock);
|
|
|
set_current_state(TASK_INTERRUPTIBLE);
|
|
|
schedule_timeout(39*HZ);
|
|
|
} else {
|
|
|
- oplock_item = list_entry(GlobalOplock_Q.next,
|
|
|
+ oplock_item = list_entry(cifs_oplock_list.next,
|
|
|
struct oplock_q_entry, qhead);
|
|
|
cFYI(1, ("found oplock item to write out"));
|
|
|
pTcon = oplock_item->tcon;
|
|
|
inode = oplock_item->pinode;
|
|
|
netfid = oplock_item->netfid;
|
|
|
- spin_unlock(&GlobalMid_Lock);
|
|
|
+ spin_unlock(&cifs_oplock_lock);
|
|
|
DeleteOplockQEntry(oplock_item);
|
|
|
/* can not grab inode sem here since it would
|
|
|
deadlock when oplock received on delete
|
|
@@ -1055,7 +1055,7 @@ init_cifs(void)
|
|
|
int rc = 0;
|
|
|
cifs_proc_init();
|
|
|
INIT_LIST_HEAD(&cifs_tcp_ses_list);
|
|
|
- INIT_LIST_HEAD(&GlobalOplock_Q);
|
|
|
+ INIT_LIST_HEAD(&cifs_oplock_list);
|
|
|
#ifdef CONFIG_CIFS_EXPERIMENTAL
|
|
|
INIT_LIST_HEAD(&GlobalDnotifyReqList);
|
|
|
INIT_LIST_HEAD(&GlobalDnotifyRsp_Q);
|
|
@@ -1084,6 +1084,7 @@ init_cifs(void)
|
|
|
rwlock_init(&GlobalSMBSeslock);
|
|
|
rwlock_init(&cifs_tcp_ses_lock);
|
|
|
spin_lock_init(&GlobalMid_Lock);
|
|
|
+ spin_lock_init(&cifs_oplock_lock);
|
|
|
|
|
|
if (cifs_max_pending < 2) {
|
|
|
cifs_max_pending = 2;
|