ksmbd: use list_for_each_entry instead of list_for_each

Use list_for_each_entry instead of list_for_each.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
Namjae Jeon 2021-06-18 10:28:52 +09:00
parent f8524776f1
commit 6f3d5eeec7
3 changed files with 6 additions and 16 deletions

View File

@ -73,10 +73,8 @@ static inline int check_session_id(struct ksmbd_conn *conn, u64 id)
struct channel *lookup_chann_list(struct ksmbd_session *sess, struct ksmbd_conn *conn)
{
struct channel *chann;
struct list_head *t;
list_for_each(t, &sess->ksmbd_chann_list) {
chann = list_entry(t, struct channel, chann_list);
list_for_each_entry(chann, &sess->ksmbd_chann_list, chann_list) {
if (chann && chann->conn == conn)
return chann;
}
@ -6315,7 +6313,6 @@ int smb2_cancel(struct ksmbd_work *work)
struct smb2_hdr *hdr = work->request_buf;
struct smb2_hdr *chdr;
struct ksmbd_work *cancel_work = NULL;
struct list_head *tmp;
int canceled = 0;
struct list_head *command_list;
@ -6326,9 +6323,8 @@ int smb2_cancel(struct ksmbd_work *work)
command_list = &conn->async_requests;
spin_lock(&conn->request_lock);
list_for_each(tmp, command_list) {
cancel_work = list_entry(tmp, struct ksmbd_work,
async_request_entry);
list_for_each_entry(cancel_work, command_list,
async_request_entry) {
chdr = cancel_work->request_buf;
if (cancel_work->async_id !=
@ -6347,9 +6343,7 @@ int smb2_cancel(struct ksmbd_work *work)
command_list = &conn->requests;
spin_lock(&conn->request_lock);
list_for_each(tmp, command_list) {
cancel_work = list_entry(tmp, struct ksmbd_work,
request_entry);
list_for_each_entry(cancel_work, command_list, request_entry) {
chdr = cancel_work->request_buf;
if (chdr->MessageId != hdr->MessageId ||

View File

@ -481,15 +481,13 @@ int ksmbd_smb_check_shared_mode(struct file *filp, struct ksmbd_file *curr_fp)
{
int rc = 0;
struct ksmbd_file *prev_fp;
struct list_head *cur;
/*
* Lookup fp in master fp list, and check desired access and
* shared mode between previous open and current open.
*/
read_lock(&curr_fp->f_ci->m_lock);
list_for_each(cur, &curr_fp->f_ci->m_fp_list) {
prev_fp = list_entry(cur, struct ksmbd_file, node);
list_for_each_entry(prev_fp, &curr_fp->f_ci->m_fp_list, node) {
if (file_inode(filp) != FP_INODE(prev_fp))
continue;

View File

@ -472,15 +472,13 @@ struct ksmbd_file *ksmbd_lookup_fd_inode(struct inode *inode)
{
struct ksmbd_file *lfp;
struct ksmbd_inode *ci;
struct list_head *cur;
ci = ksmbd_inode_lookup_by_vfsinode(inode);
if (!ci)
return NULL;
read_lock(&ci->m_lock);
list_for_each(cur, &ci->m_fp_list) {
lfp = list_entry(cur, struct ksmbd_file, node);
list_for_each_entry(lfp, &ci->m_fp_list, node) {
if (inode == FP_INODE(lfp)) {
atomic_dec(&ci->m_count);
read_unlock(&ci->m_lock);