oe-kbuild.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [linux-next:master 3307/3504] fs/smb/client/file.c:619 serverclose_work() error: uninitialized symbol 'rc'.
@ 2024-04-03  6:35 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2024-04-03  6:35 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Ritvik Budhiraja <rbudhiraja@microsoft.com>
CC: Steve French <stfrench@microsoft.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   727900b675b749c40ba1f6669c7ae5eb7eb8e837
commit: a423dcbdabf457c0fff3669b0b20708d287c92c2 [3307/3504] smb3: retrying on failed server close
:::::: branch date: 4 hours ago
:::::: commit date: 11 hours ago
config: x86_64-randconfig-161-20240403 (https://download.01.org/0day-ci/archive/20240403/202404031415.cIBwV2aU-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0

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
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202404031415.cIBwV2aU-lkp@intel.com/

New smatch warnings:
fs/smb/client/file.c:619 serverclose_work() error: uninitialized symbol 'rc'.
fs/smb/client/file.c:732 _cifsFileInfo_put() error: uninitialized symbol 'rc'.

Old smatch warnings:
fs/smb/client/file.c:5050 cifs_oplock_break() warn: variable dereferenced before check 'inode' (see line 5021)

vim +/rc +619 fs/smb/client/file.c

32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  600  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  601  void serverclose_work(struct work_struct *work)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  602  {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  603  	struct cifsFileInfo *cifs_file = container_of(work,
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  604  			struct cifsFileInfo, serverclose);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  605  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  606  	struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  607  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  608  	struct TCP_Server_Info *server = tcon->ses->server;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  609  	int rc;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  610  	int retries = 0;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  611  	int MAX_RETRIES = 4;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  612  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  613  	do {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  614  		if (server->ops->close_getattr)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  615  			rc = server->ops->close_getattr(0, tcon, cifs_file);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  616  		else if (server->ops->close)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  617  			rc = server->ops->close(0, tcon, &cifs_file->fid);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  618  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02 @619  		if (rc == -EBUSY || rc == -EAGAIN) {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  620  			retries++;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  621  			msleep(250);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  622  		}
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  623  	} while ((rc == -EBUSY || rc == -EAGAIN) && (retries < MAX_RETRIES)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  624  	);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  625  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  626  	if (retries == MAX_RETRIES)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  627  		pr_warn("Serverclose failed %d times, giving up\n", MAX_RETRIES);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  628  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  629  	if (cifs_file->offload)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  630  		queue_work(fileinfo_put_wq, &cifs_file->put);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  631  	else
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  632  		cifsFileInfo_put_final(cifs_file);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  633  }
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  634  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  635  /**
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  636   * cifsFileInfo_put - release a reference of file priv data
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  637   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  638   * Always potentially wait for oplock handler. See _cifsFileInfo_put().
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  639   *
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  640   * @cifs_file:	cifs/smb3 specific info (eg refcounts) for an open file
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  641   */
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  642  void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  643  {
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  644  	_cifsFileInfo_put(cifs_file, true, true);
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  645  }
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  646  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  647  /**
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  648   * _cifsFileInfo_put - release a reference of file priv data
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  649   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  650   * This may involve closing the filehandle @cifs_file out on the
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  651   * server. Must be called without holding tcon->open_file_lock,
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  652   * cinode->open_file_lock and cifs_file->file_info_lock.
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  653   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  654   * If @wait_for_oplock_handler is true and we are releasing the last
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  655   * reference, wait for any running oplock break handler of the file
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  656   * and cancel any pending one.
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  657   *
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  658   * @cifs_file:	cifs/smb3 specific info (eg refcounts) for an open file
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  659   * @wait_oplock_handler: must be false if called from oplock_break_handler
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  660   * @offload:	not offloaded on close and oplock breaks
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  661   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  662   */
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  663  void _cifsFileInfo_put(struct cifsFileInfo *cifs_file,
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  664  		       bool wait_oplock_handler, bool offload)
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  665  {
2b0143b5c986be fs/cifs/file.c       David Howells    2015-03-17  666  	struct inode *inode = d_inode(cifs_file->dentry);
96daf2b09178d8 fs/cifs/file.c       Steve French     2011-05-27  667  	struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  668  	struct TCP_Server_Info *server = tcon->ses->server;
e66673e39ac9d4 fs/cifs/file.c       Pavel Shilovsky  2010-11-02  669  	struct cifsInodeInfo *cifsi = CIFS_I(inode);
24261fc23db950 fs/cifs/file.c       Mateusz Guzik    2013-03-08  670  	struct super_block *sb = inode->i_sb;
24261fc23db950 fs/cifs/file.c       Mateusz Guzik    2013-03-08  671  	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
2bff0659338e58 fs/cifs/file.c       Steve French     2022-10-14  672  	struct cifs_fid fid = {};
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  673  	struct cifs_pending_open open;
ca7df8e0bb2a5e fs/cifs/file.c       Sachin Prabhu    2015-01-15  674  	bool oplock_break_cancelled;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  675  	bool serverclose_offloaded = false;
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  676  
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  677  	spin_lock(&tcon->open_file_lock);
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  678  	spin_lock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  679  	spin_lock(&cifs_file->file_info_lock);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  680  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  681  	cifs_file->offload = offload;
5f6dbc9e4afe4d fs/cifs/file.c       Jeff Layton      2010-10-15  682  	if (--cifs_file->count > 0) {
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  683  		spin_unlock(&cifs_file->file_info_lock);
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  684  		spin_unlock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  685  		spin_unlock(&tcon->open_file_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  686  		return;
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  687  	}
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  688  	spin_unlock(&cifs_file->file_info_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  689  
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  690  	if (server->ops->get_lease_key)
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  691  		server->ops->get_lease_key(inode, &fid);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  692  
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  693  	/* store open in pending opens to make sure we don't miss lease break */
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  694  	cifs_add_pending_open_locked(&fid, cifs_file->tlink, &open);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  695  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  696  	/* remove it from the lists */
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  697  	list_del(&cifs_file->flist);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  698  	list_del(&cifs_file->tlist);
fae8044c03c3c0 fs/cifs/file.c       Steve French     2018-10-19  699  	atomic_dec(&tcon->num_local_opens);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  700  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  701  	if (list_empty(&cifsi->openFileList)) {
f96637be081141 fs/cifs/file.c       Joe Perches      2013-05-04  702  		cifs_dbg(FYI, "closing last open instance for inode %p\n",
2b0143b5c986be fs/cifs/file.c       David Howells    2015-03-17  703  			 d_inode(cifs_file->dentry));
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  704  		/*
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  705  		 * In strict cache mode we need invalidate mapping on the last
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  706  		 * close  because it may cause a error when we open this file
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  707  		 * again and get at least level II oplock.
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  708  		 */
4f8ba8a0c09593 fs/cifs/file.c       Pavel Shilovsky  2010-11-21  709  		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO)
aff8d5ca7a3dca fs/cifs/file.c       Jeff Layton      2014-04-30  710  			set_bit(CIFS_INO_INVALID_MAPPING, &cifsi->flags);
c67236281c5d74 fs/cifs/file.c       Pavel Shilovsky  2010-11-03  711  		cifs_set_oplock_level(cifsi, 0);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  712  	}
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  713  
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  714  	spin_unlock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  715  	spin_unlock(&tcon->open_file_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  716  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  717  	oplock_break_cancelled = wait_oplock_handler ?
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  718  		cancel_work_sync(&cifs_file->oplock_break) : false;
ad635942c869ad fs/cifs/file.c       Jeff Layton      2011-07-26  719  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  720  	if (!tcon->need_reconnect && !cifs_file->invalidHandle) {
0ff78a221bf783 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  721  		struct TCP_Server_Info *server = tcon->ses->server;
6d5786a34d98bf fs/cifs/file.c       Pavel Shilovsky  2012-06-20  722  		unsigned int xid;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  723  		int rc;
0ff78a221bf783 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  724  
6d5786a34d98bf fs/cifs/file.c       Pavel Shilovsky  2012-06-20  725  		xid = get_xid();
43f8a6a74ee244 fs/cifs/file.c       Steve French     2019-12-02  726  		if (server->ops->close_getattr)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  727  			rc = server->ops->close_getattr(xid, tcon, cifs_file);
43f8a6a74ee244 fs/cifs/file.c       Steve French     2019-12-02  728  		else if (server->ops->close)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  729  			rc = server->ops->close(xid, tcon, &cifs_file->fid);
760ad0cac19835 fs/cifs/file.c       Pavel Shilovsky  2012-09-25  730  		_free_xid(xid);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  731  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02 @732  		if (rc == -EBUSY || rc == -EAGAIN) {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  733  			// Server close failed, hence offloading it as an async op
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  734  			queue_work(serverclose_wq, &cifs_file->serverclose);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  735  			serverclose_offloaded = true;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  736  		}
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  737  	}
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  738  
ca7df8e0bb2a5e fs/cifs/file.c       Sachin Prabhu    2015-01-15  739  	if (oplock_break_cancelled)
ca7df8e0bb2a5e fs/cifs/file.c       Sachin Prabhu    2015-01-15  740  		cifs_done_oplock_break(cifsi);
ca7df8e0bb2a5e fs/cifs/file.c       Sachin Prabhu    2015-01-15  741  
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  742  	cifs_del_pending_open(&open);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  743  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  744  	// if serverclose has been offloaded to wq (on failure), it will
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  745  	// handle offloading put as well. If serverclose not offloaded,
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  746  	// we need to handle offloading put here.
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  747  	if (!serverclose_offloaded) {
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  748  		if (offload)
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  749  			queue_work(fileinfo_put_wq, &cifs_file->put);
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  750  		else
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  751  			cifsFileInfo_put_final(cifs_file);
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  752  	}
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  753  }
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  754  

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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [linux-next:master 3307/3504] fs/smb/client/file.c:619 serverclose_work() error: uninitialized symbol 'rc'.
@ 2024-04-05  6:44 Dan Carpenter
  0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2024-04-05  6:44 UTC (permalink / raw)
  To: oe-kbuild, Ritvik Budhiraja; +Cc: lkp, oe-kbuild-all, Steve French

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   727900b675b749c40ba1f6669c7ae5eb7eb8e837
commit: a423dcbdabf457c0fff3669b0b20708d287c92c2 [3307/3504] smb3: retrying on failed server close
config: x86_64-randconfig-161-20240403 (https://download.01.org/0day-ci/archive/20240403/202404031415.cIBwV2aU-lkp@intel.com/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0

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
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202404031415.cIBwV2aU-lkp@intel.com/

New smatch warnings:
fs/smb/client/file.c:619 serverclose_work() error: uninitialized symbol 'rc'.
fs/smb/client/file.c:732 _cifsFileInfo_put() error: uninitialized symbol 'rc'.

Old smatch warnings:
fs/smb/client/file.c:5050 cifs_oplock_break() warn: variable dereferenced before check 'inode' (see line 5021)

vim +/rc +619 fs/smb/client/file.c

a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  601  void serverclose_work(struct work_struct *work)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  602  {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  603  	struct cifsFileInfo *cifs_file = container_of(work,
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  604  			struct cifsFileInfo, serverclose);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  605  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  606  	struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  607  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  608  	struct TCP_Server_Info *server = tcon->ses->server;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  609  	int rc;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  610  	int retries = 0;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  611  	int MAX_RETRIES = 4;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  612  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  613  	do {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  614  		if (server->ops->close_getattr)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  615  			rc = server->ops->close_getattr(0, tcon, cifs_file);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  616  		else if (server->ops->close)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  617  			rc = server->ops->close(0, tcon, &cifs_file->fid);

rc not intialized on else path

a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  618  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02 @619  		if (rc == -EBUSY || rc == -EAGAIN) {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  620  			retries++;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  621  			msleep(250);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  622  		}
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  623  	} while ((rc == -EBUSY || rc == -EAGAIN) && (retries < MAX_RETRIES)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  624  	);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  625  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  626  	if (retries == MAX_RETRIES)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  627  		pr_warn("Serverclose failed %d times, giving up\n", MAX_RETRIES);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  628  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  629  	if (cifs_file->offload)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  630  		queue_work(fileinfo_put_wq, &cifs_file->put);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  631  	else
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  632  		cifsFileInfo_put_final(cifs_file);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  633  }
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  634  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  635  /**
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  636   * cifsFileInfo_put - release a reference of file priv data
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  637   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  638   * Always potentially wait for oplock handler. See _cifsFileInfo_put().
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  639   *
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  640   * @cifs_file:	cifs/smb3 specific info (eg refcounts) for an open file
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  641   */
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  642  void cifsFileInfo_put(struct cifsFileInfo *cifs_file)
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  643  {
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  644  	_cifsFileInfo_put(cifs_file, true, true);
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  645  }
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  646  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  647  /**
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  648   * _cifsFileInfo_put - release a reference of file priv data
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  649   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  650   * This may involve closing the filehandle @cifs_file out on the
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  651   * server. Must be called without holding tcon->open_file_lock,
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  652   * cinode->open_file_lock and cifs_file->file_info_lock.
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  653   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  654   * If @wait_for_oplock_handler is true and we are releasing the last
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  655   * reference, wait for any running oplock break handler of the file
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  656   * and cancel any pending one.
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  657   *
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  658   * @cifs_file:	cifs/smb3 specific info (eg refcounts) for an open file
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  659   * @wait_oplock_handler: must be false if called from oplock_break_handler
607dfc79c37a0e fs/cifs/file.c       Steve French     2020-12-12  660   * @offload:	not offloaded on close and oplock breaks
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  661   *
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  662   */
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  663  void _cifsFileInfo_put(struct cifsFileInfo *cifs_file,
32546a9586aa45 fs/cifs/file.c       Ronnie Sahlberg  2019-11-03  664  		       bool wait_oplock_handler, bool offload)
b33879aa834ebe fs/cifs/file.c       Jeff Layton      2010-10-15  665  {
2b0143b5c986be fs/cifs/file.c       David Howells    2015-03-17  666  	struct inode *inode = d_inode(cifs_file->dentry);
96daf2b09178d8 fs/cifs/file.c       Steve French     2011-05-27  667  	struct cifs_tcon *tcon = tlink_tcon(cifs_file->tlink);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  668  	struct TCP_Server_Info *server = tcon->ses->server;
e66673e39ac9d4 fs/cifs/file.c       Pavel Shilovsky  2010-11-02  669  	struct cifsInodeInfo *cifsi = CIFS_I(inode);
24261fc23db950 fs/cifs/file.c       Mateusz Guzik    2013-03-08  670  	struct super_block *sb = inode->i_sb;
24261fc23db950 fs/cifs/file.c       Mateusz Guzik    2013-03-08  671  	struct cifs_sb_info *cifs_sb = CIFS_SB(sb);
2bff0659338e58 fs/cifs/file.c       Steve French     2022-10-14  672  	struct cifs_fid fid = {};
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  673  	struct cifs_pending_open open;
ca7df8e0bb2a5e fs/cifs/file.c       Sachin Prabhu    2015-01-15  674  	bool oplock_break_cancelled;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  675  	bool serverclose_offloaded = false;
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  676  
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  677  	spin_lock(&tcon->open_file_lock);
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  678  	spin_lock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  679  	spin_lock(&cifs_file->file_info_lock);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  680  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  681  	cifs_file->offload = offload;
5f6dbc9e4afe4d fs/cifs/file.c       Jeff Layton      2010-10-15  682  	if (--cifs_file->count > 0) {
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  683  		spin_unlock(&cifs_file->file_info_lock);
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  684  		spin_unlock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  685  		spin_unlock(&tcon->open_file_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  686  		return;
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  687  	}
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  688  	spin_unlock(&cifs_file->file_info_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  689  
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  690  	if (server->ops->get_lease_key)
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  691  		server->ops->get_lease_key(inode, &fid);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  692  
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  693  	/* store open in pending opens to make sure we don't miss lease break */
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  694  	cifs_add_pending_open_locked(&fid, cifs_file->tlink, &open);
233839b1df65a2 fs/cifs/file.c       Pavel Shilovsky  2012-09-19  695  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  696  	/* remove it from the lists */
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  697  	list_del(&cifs_file->flist);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  698  	list_del(&cifs_file->tlist);
fae8044c03c3c0 fs/cifs/file.c       Steve French     2018-10-19  699  	atomic_dec(&tcon->num_local_opens);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  700  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  701  	if (list_empty(&cifsi->openFileList)) {
f96637be081141 fs/cifs/file.c       Joe Perches      2013-05-04  702  		cifs_dbg(FYI, "closing last open instance for inode %p\n",
2b0143b5c986be fs/cifs/file.c       David Howells    2015-03-17  703  			 d_inode(cifs_file->dentry));
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  704  		/*
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  705  		 * In strict cache mode we need invalidate mapping on the last
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  706  		 * close  because it may cause a error when we open this file
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  707  		 * again and get at least level II oplock.
253641388a4925 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  708  		 */
4f8ba8a0c09593 fs/cifs/file.c       Pavel Shilovsky  2010-11-21  709  		if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO)
aff8d5ca7a3dca fs/cifs/file.c       Jeff Layton      2014-04-30  710  			set_bit(CIFS_INO_INVALID_MAPPING, &cifsi->flags);
c67236281c5d74 fs/cifs/file.c       Pavel Shilovsky  2010-11-03  711  		cifs_set_oplock_level(cifsi, 0);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  712  	}
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  713  
1a67c415965752 fs/cifs/file.c       Pavel Shilovsky  2019-10-23  714  	spin_unlock(&cifsi->open_file_lock);
3afca265b5f53a fs/cifs/file.c       Steve French     2016-09-22  715  	spin_unlock(&tcon->open_file_lock);
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  716  
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  717  	oplock_break_cancelled = wait_oplock_handler ?
b98749cac4a695 fs/cifs/file.c       Aurelien Aptel   2019-03-29  718  		cancel_work_sync(&cifs_file->oplock_break) : false;
ad635942c869ad fs/cifs/file.c       Jeff Layton      2011-07-26  719  
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  720  	if (!tcon->need_reconnect && !cifs_file->invalidHandle) {
0ff78a221bf783 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  721  		struct TCP_Server_Info *server = tcon->ses->server;
6d5786a34d98bf fs/cifs/file.c       Pavel Shilovsky  2012-06-20  722  		unsigned int xid;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  723  		int rc;
0ff78a221bf783 fs/cifs/file.c       Pavel Shilovsky  2012-09-18  724  
6d5786a34d98bf fs/cifs/file.c       Pavel Shilovsky  2012-06-20  725  		xid = get_xid();
43f8a6a74ee244 fs/cifs/file.c       Steve French     2019-12-02  726  		if (server->ops->close_getattr)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  727  			rc = server->ops->close_getattr(xid, tcon, cifs_file);
43f8a6a74ee244 fs/cifs/file.c       Steve French     2019-12-02  728  		else if (server->ops->close)
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  729  			rc = server->ops->close(xid, tcon, &cifs_file->fid);
760ad0cac19835 fs/cifs/file.c       Pavel Shilovsky  2012-09-25  730  		_free_xid(xid);

Same

a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  731  
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02 @732  		if (rc == -EBUSY || rc == -EAGAIN) {
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  733  			// Server close failed, hence offloading it as an async op
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  734  			queue_work(serverclose_wq, &cifs_file->serverclose);
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  735  			serverclose_offloaded = true;
a423dcbdabf457 fs/smb/client/file.c Ritvik Budhiraja 2024-04-02  736  		}
cdff08e76612e5 fs/cifs/file.c       Steve French     2010-10-21  737  	}

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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-04-05  6:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-03  6:35 [linux-next:master 3307/3504] fs/smb/client/file.c:619 serverclose_work() error: uninitialized symbol 'rc' kernel test robot
2024-04-05  6:44 Dan Carpenter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).