fs/smb/client/ioctl.c:135:2-7: WARNING: NULL check before some freeing functions is not needed.

kernel test robot <[email protected]>
Newsgroups org.kernel.vger.linux-kernel,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   3eb40771c00a8488fa6ed2cc1fe203477908bf38
commit: 5693347de107a26f68d1f43b25ff2e348c7229a9 smb/client: use writable handle for FS_IOC_SETFLAGS compression
date:   9 weeks ago
config: powerpc-randconfig-r053-20260812 (https://download.01.org/0day-ci/archive/20260816/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 12df34b8469b8095359de8c249cb1b2753fadeea)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 5693347de107 ("smb/client: use writable handle for FS_IOC_SETFLAGS compression")
| Reported-by: kernel test robot <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

cocci warnings: (new ones prefixed by >>)
>> fs/smb/client/ioctl.c:135:2-7: WARNING: NULL check before some freeing functions is not needed.

vim +135 fs/smb/client/ioctl.c

    69	
    70	static int cifs_set_compression_by_path(unsigned int xid, struct file *filep,
    71						struct cifs_tcon *tcon)
    72	{
    73		struct inode *inode = file_inode(filep);
    74		struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
    75		struct TCP_Server_Info *server = tcon->ses->server;
    76		struct cifs_open_parms oparms;
    77		struct cifs_open_info_data data = {};
    78		struct cifsFileInfo *tmp_cfile = NULL;
    79		struct cifs_fid fid = {};
    80		const char *full_path;
    81		__u32 oplock = 0;
    82		u64 uniqueid;
    83		void *page;
    84		int rc;
    85	
    86		if (!server->ops->open || !server->ops->close ||
    87		    !server->ops->query_file_info)
    88			return -EOPNOTSUPP;
    89	
    90		if (!(cifs_sb_flags(cifs_sb) & CIFS_MOUNT_SERVER_INUM) ||
    91		    cifs_sb->mnt_cifs_serverino_autodisabled)
    92			return -EOPNOTSUPP;
    93	
    94		if (d_unhashed(filep->f_path.dentry))
    95			return -ESTALE;
    96	
    97		page = alloc_dentry_path();
    98		full_path = build_path_from_dentry(filep->f_path.dentry, page);
    99		if (IS_ERR(full_path)) {
   100			free_dentry_path(page);
   101			return PTR_ERR(full_path);
   102		}
   103	
   104		oparms = CIFS_OPARMS(cifs_sb, tcon, full_path, FILE_WRITE_DATA |
   105				     FILE_READ_ATTRIBUTES,
   106				     FILE_OPEN, 0, ACL_NO_MODE);
   107		oparms.fid = &fid;
   108	
   109		rc = server->ops->open(xid, &oparms, &oplock, NULL);
   110		if (rc)
   111			goto out;
   112	
   113		tmp_cfile = kzalloc_obj(*tmp_cfile);
   114		if (!tmp_cfile) {
   115			rc = -ENOMEM;
   116			goto close;
   117		}
   118	
   119		tmp_cfile->fid = fid;
   120		rc = server->ops->query_file_info(xid, tcon, tmp_cfile, &data);
   121		if (rc)
   122			goto close;
   123	
   124		uniqueid = le64_to_cpu(data.fi.IndexNumber);
   125		if (uniqueid != CIFS_I(inode)->uniqueid) {
   126			rc = -ESTALE;
   127			goto close;
   128		}
   129	
   130		rc = server->ops->set_compression(xid, tcon, tmp_cfile);
   131	
   132	close:
   133		server->ops->close(xid, tcon, &fid);
   134		if (tmp_cfile)
 > 135			kfree(tmp_cfile);
   136		cifs_free_open_info(&data);
   137	out:
   138		free_dentry_path(page);
   139		return rc;
   140	}
   141	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.