ksmbd: use list_first_entry_or_null for opinfo_get_list()
The list_first_entry() macro never returns NULL. If the list is empty then it returns an invalid pointer. Use list_first_entry_or_null() to check if the list is empty. Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Closes: https://lore.kernel.org/r/202505080231.7OXwq4Te-lkp@intel.com/ Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
This commit is contained in:
parent
68477b5dc5
commit
10379171f3
1 changed files with 2 additions and 5 deletions
|
@ -146,12 +146,9 @@ static struct oplock_info *opinfo_get_list(struct ksmbd_inode *ci)
|
||||||
{
|
{
|
||||||
struct oplock_info *opinfo;
|
struct oplock_info *opinfo;
|
||||||
|
|
||||||
if (list_empty(&ci->m_op_list))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
down_read(&ci->m_lock);
|
down_read(&ci->m_lock);
|
||||||
opinfo = list_first_entry(&ci->m_op_list, struct oplock_info,
|
opinfo = list_first_entry_or_null(&ci->m_op_list, struct oplock_info,
|
||||||
op_entry);
|
op_entry);
|
||||||
if (opinfo) {
|
if (opinfo) {
|
||||||
if (opinfo->conn == NULL ||
|
if (opinfo->conn == NULL ||
|
||||||
!atomic_inc_not_zero(&opinfo->refcount))
|
!atomic_inc_not_zero(&opinfo->refcount))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue