Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ad8b15f0 authored by Steve French's avatar Steve French
Browse files

[CIFS] list entry can not return null



Signed-off-by: default avatarSteve French <sfrench@us.ibm.com>
parent 0510eeb7
Loading
Loading
Loading
Loading
+24 −29
Original line number Original line Diff line number Diff line
@@ -79,7 +79,6 @@ void cifs_dump_mids(struct TCP_Server_Info *server)
	spin_lock(&GlobalMid_Lock);
	spin_lock(&GlobalMid_Lock);
	list_for_each(tmp, &server->pending_mid_q) {
	list_for_each(tmp, &server->pending_mid_q) {
		mid_entry = list_entry(tmp, struct mid_q_entry, qhead);
		mid_entry = list_entry(tmp, struct mid_q_entry, qhead);
		if (mid_entry) {
		cERROR(1, ("State: %d Cmd: %d Pid: %d Tsk: %p Mid %d",
		cERROR(1, ("State: %d Cmd: %d Pid: %d Tsk: %p Mid %d",
			mid_entry->midState,
			mid_entry->midState,
			(int)mid_entry->command,
			(int)mid_entry->command,
@@ -101,7 +100,6 @@ void cifs_dump_mids(struct TCP_Server_Info *server)
				mid_entry->resp_buf, 62);
				mid_entry->resp_buf, 62);
		}
		}
	}
	}
	}
	spin_unlock(&GlobalMid_Lock);
	spin_unlock(&GlobalMid_Lock);
}
}
#endif /* CONFIG_CIFS_DEBUG2 */
#endif /* CONFIG_CIFS_DEBUG2 */
@@ -163,9 +161,7 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
				mid_entry = list_entry(tmp1, struct
				mid_entry = list_entry(tmp1, struct
					mid_q_entry,
					mid_q_entry,
					qhead);
					qhead);
				if (mid_entry) {
				seq_printf(m, "State: %d com: %d pid:"
					seq_printf(m,
							"State: %d com: %d pid:"
						" %d tsk: %p mid %d\n",
						" %d tsk: %p mid %d\n",
						mid_entry->midState,
						mid_entry->midState,
						(int)mid_entry->command,
						(int)mid_entry->command,
@@ -173,7 +169,6 @@ static int cifs_debug_data_proc_show(struct seq_file *m, void *v)
						mid_entry->tsk,
						mid_entry->tsk,
						mid_entry->mid);
						mid_entry->mid);
			}
			}
			}
			spin_unlock(&GlobalMid_Lock);
			spin_unlock(&GlobalMid_Lock);
		}
		}


+33 −38
Original line number Original line Diff line number Diff line
@@ -931,7 +931,6 @@ static int cifs_oplock_thread(void *dummyarg)
		} else {
		} else {
			oplock_item = list_entry(GlobalOplock_Q.next,
			oplock_item = list_entry(GlobalOplock_Q.next,
						struct oplock_q_entry, qhead);
						struct oplock_q_entry, qhead);
			if (oplock_item) {
			cFYI(1, ("found oplock item to write out"));
			cFYI(1, ("found oplock item to write out"));
			pTcon = oplock_item->tcon;
			pTcon = oplock_item->tcon;
			inode = oplock_item->pinode;
			inode = oplock_item->pinode;
@@ -944,11 +943,10 @@ static int cifs_oplock_thread(void *dummyarg)
				the call */
				the call */
			/* mutex_lock(&inode->i_mutex);*/
			/* mutex_lock(&inode->i_mutex);*/
			if (S_ISREG(inode->i_mode)) {
			if (S_ISREG(inode->i_mode)) {
					rc =
				rc = filemap_fdatawrite(inode->i_mapping);
					   filemap_fdatawrite(inode->i_mapping);
				if (CIFS_I(inode)->clientCanCacheRead == 0) {
					if (CIFS_I(inode)->clientCanCacheRead
					waitrc = filemap_fdatawait(
									 == 0) {
							      inode->i_mapping);
						waitrc = filemap_fdatawait(inode->i_mapping);
					invalidate_remote_inode(inode);
					invalidate_remote_inode(inode);
				}
				}
				if (rc == 0)
				if (rc == 0)
@@ -974,8 +972,6 @@ static int cifs_oplock_thread(void *dummyarg)
						false /* wait flag */);
						false /* wait flag */);
				cFYI(1, ("Oplock release rc = %d", rc));
				cFYI(1, ("Oplock release rc = %d", rc));
			}
			}
			} else
				spin_unlock(&GlobalMid_Lock);
			set_current_state(TASK_INTERRUPTIBLE);
			set_current_state(TASK_INTERRUPTIBLE);
			schedule_timeout(1);  /* yield in case q were corrupt */
			schedule_timeout(1);  /* yield in case q were corrupt */
		}
		}
@@ -1001,8 +997,7 @@ static int cifs_dnotify_thread(void *dummyarg)
		list_for_each(tmp, &GlobalSMBSessionList) {
		list_for_each(tmp, &GlobalSMBSessionList) {
			ses = list_entry(tmp, struct cifsSesInfo,
			ses = list_entry(tmp, struct cifsSesInfo,
				cifsSessionList);
				cifsSessionList);
			if (ses && ses->server &&
			if (ses->server && atomic_read(&ses->server->inFlight))
			     atomic_read(&ses->server->inFlight))
				wake_up_all(&ses->server->response_q);
				wake_up_all(&ses->server->response_q);
		}
		}
		read_unlock(&GlobalSMBSeslock);
		read_unlock(&GlobalSMBSeslock);
+1 −2
Original line number Original line Diff line number Diff line
@@ -128,7 +128,6 @@ static void mark_open_files_invalid(struct cifsTconInfo *pTcon)
	write_lock(&GlobalSMBSeslock);
	write_lock(&GlobalSMBSeslock);
	list_for_each_safe(tmp, tmp1, &pTcon->openFileList) {
	list_for_each_safe(tmp, tmp1, &pTcon->openFileList) {
		open_file = list_entry(tmp, struct cifsFileInfo, tlist);
		open_file = list_entry(tmp, struct cifsFileInfo, tlist);
		if (open_file)
		open_file->invalidHandle = true;
		open_file->invalidHandle = true;
	}
	}
	write_unlock(&GlobalSMBSeslock);
	write_unlock(&GlobalSMBSeslock);
+3 −5
Original line number Original line Diff line number Diff line
@@ -151,7 +151,7 @@ cifs_reconnect(struct TCP_Server_Info *server)
	}
	}
	list_for_each(tmp, &GlobalTreeConnectionList) {
	list_for_each(tmp, &GlobalTreeConnectionList) {
		tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList);
		tcon = list_entry(tmp, struct cifsTconInfo, cifsConnectionList);
		if ((tcon) && (tcon->ses) && (tcon->ses->server == server))
		if ((tcon->ses) && (tcon->ses->server == server))
			tcon->tidStatus = CifsNeedReconnect;
			tcon->tidStatus = CifsNeedReconnect;
	}
	}
	read_unlock(&GlobalSMBSeslock);
	read_unlock(&GlobalSMBSeslock);
@@ -173,7 +173,6 @@ cifs_reconnect(struct TCP_Server_Info *server)
		mid_entry = list_entry(tmp, struct
		mid_entry = list_entry(tmp, struct
					mid_q_entry,
					mid_q_entry,
					qhead);
					qhead);
		if (mid_entry) {
		if (mid_entry->midState == MID_REQUEST_SUBMITTED) {
		if (mid_entry->midState == MID_REQUEST_SUBMITTED) {
				/* Mark other intransit requests as needing
				/* Mark other intransit requests as needing
				   retry so we do not immediately mark the
				   retry so we do not immediately mark the
@@ -182,7 +181,6 @@ cifs_reconnect(struct TCP_Server_Info *server)
			mid_entry->midState = MID_RETRY_NEEDED;
			mid_entry->midState = MID_RETRY_NEEDED;
		}
		}
	}
	}
	}
	spin_unlock(&GlobalMid_Lock);
	spin_unlock(&GlobalMid_Lock);
	up(&server->tcpSem);
	up(&server->tcpSem);