Re: [PATCH 10/11] cifs: handle when server stops supporting multichannel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Shyam,

I love your patch! Perhaps something to improve:

[auto build test WARNING on cifs/for-next]
[also build test WARNING on linus/master v6.3-rc2 next-20230310]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Shyam-Prasad-N/cifs-generate-signkey-for-the-channel-that-s-reconnecting/20230310-234711
base:   git://git.samba.org/sfrench/cifs-2.6.git for-next
patch link:    https://lore.kernel.org/r/20230310153211.10982-10-sprasad%40microsoft.com
patch subject: [PATCH 10/11] cifs: handle when server stops supporting multichannel
config: i386-randconfig-m021 (https://download.01.org/0day-ci/archive/20230313/202303131424.W2jbbLmc-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202303131424.W2jbbLmc-lkp@xxxxxxxxx/

New smatch warnings:
fs/cifs/sess.c:299 cifs_disable_extra_channels() warn: unsigned '--iface->weight_fulfilled' is never less than zero.

Old smatch warnings:
fs/cifs/sess.c:401 cifs_chan_update_iface() warn: unsigned '--old_iface->weight_fulfilled' is never less than zero.
fs/cifs/sess.c:412 cifs_chan_update_iface() warn: unsigned '--old_iface->weight_fulfilled' is never less than zero.

vim +299 fs/cifs/sess.c

   276	
   277	/*
   278	 * called when multichannel is disabled by the server
   279	 */
   280	void
   281	cifs_disable_extra_channels(struct cifs_ses *ses)
   282	{
   283		int i, chan_count;
   284		struct cifs_server_iface *iface = NULL;
   285		struct TCP_Server_Info *server = NULL;
   286	
   287		spin_lock(&ses->chan_lock);
   288		chan_count = ses->chan_count;
   289		ses->chan_count = 1;
   290		for (i = 1; i < chan_count; i++) {
   291			iface = ses->chans[i].iface;
   292			server = ses->chans[i].server;
   293			spin_unlock(&ses->chan_lock);
   294	
   295			if (iface) {
   296				spin_lock(&ses->iface_lock);
   297				kref_put(&iface->refcount, release_iface);
   298				iface->num_channels--;
 > 299				if (--iface->weight_fulfilled < 0)
   300					iface->weight_fulfilled = 0;
   301				spin_unlock(&ses->iface_lock);
   302			}
   303			cifs_put_tcp_session(server, 0);
   304	
   305			spin_lock(&ses->chan_lock);
   306			ses->chans[i].iface = NULL;
   307			ses->chans[i].server = NULL;
   308		}
   309		spin_unlock(&ses->chan_lock);
   310	}
   311	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux