[linux-next:master 3181/4021] fs/smb/client/file.c:1584:9: error: implicit declaration of function 'for_each_file_lock'; did you mean 'for_each_node_mask'?

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

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   23e11d0318521e8693459b0e4d23aec614b3b68b
commit: 39647541cb269fded1345c1e522f829e144f5af8 [3181/4021] smb/client: convert to using new filelock helpers
config: mips-randconfig-r012-20230715 (https://download.01.org/0day-ci/archive/20240206/202402060506.76gqE6ri-lkp@xxxxxxxxx/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240206/202402060506.76gqE6ri-lkp@xxxxxxxxx/reproduce)

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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202402060506.76gqE6ri-lkp@xxxxxxxxx/

All error/warnings (new ones prefixed by >>):

   fs/smb/client/file.c: In function 'cifs_posix_lock_test':
   fs/smb/client/file.c:1412:13: error: implicit declaration of function 'lock_is_unlock'; did you mean 'lock_pin_lock'? [-Werror=implicit-function-declaration]
    1412 |         if (lock_is_unlock(flock) && !cinode->can_cache_brlcks) {
         |             ^~~~~~~~~~~~~~
         |             lock_pin_lock
   fs/smb/client/file.c: In function 'cifs_push_posix_locks':
>> fs/smb/client/file.c:1584:9: error: implicit declaration of function 'for_each_file_lock'; did you mean 'for_each_node_mask'? [-Werror=implicit-function-declaration]
    1584 |         for_each_file_lock(flock, &flctx->flc_posix) {
         |         ^~~~~~~~~~~~~~~~~~
         |         for_each_node_mask
>> fs/smb/client/file.c:1584:53: error: expected ';' before '{' token
    1584 |         for_each_file_lock(flock, &flctx->flc_posix) {
         |                                                     ^~
         |                                                     ;
>> fs/smb/client/file.c:1553:15: warning: unused variable 'length' [-Wunused-variable]
    1553 |         __u64 length;
         |               ^~~~~~
>> fs/smb/client/file.c:1550:26: warning: unused variable 'type' [-Wunused-variable]
    1550 |         int rc = 0, xid, type;
         |                          ^~~~
   fs/smb/client/file.c: In function 'cifs_read_flock':
   fs/smb/client/file.c:1684:13: error: implicit declaration of function 'lock_is_write'; did you mean 'op_is_write'? [-Werror=implicit-function-declaration]
    1684 |         if (lock_is_write(flock)) {
         |             ^~~~~~~~~~~~~
         |             op_is_write
   fs/smb/client/file.c:1693:20: error: implicit declaration of function 'lock_is_read'; did you mean 'lock_is_held'? [-Werror=implicit-function-declaration]
    1693 |         } else if (lock_is_read(flock)) {
         |                    ^~~~~~~~~~~~
         |                    lock_is_held
   cc1: some warnings being treated as errors


vim +1584 fs/smb/client/file.c

  1540	
  1541	#ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
  1542	static int
  1543	cifs_push_posix_locks(struct cifsFileInfo *cfile)
  1544	{
  1545		struct inode *inode = d_inode(cfile->dentry);
  1546		struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
  1547		struct file_lock *flock;
  1548		struct file_lock_context *flctx = locks_inode_context(inode);
  1549		unsigned int count = 0, i;
> 1550		int rc = 0, xid, type;
  1551		struct list_head locks_to_send, *el;
  1552		struct lock_to_push *lck, *tmp;
> 1553		__u64 length;
  1554	
  1555		xid = get_xid();
  1556	
  1557		if (!flctx)
  1558			goto out;
  1559	
  1560		spin_lock(&flctx->flc_lock);
  1561		list_for_each(el, &flctx->flc_posix) {
  1562			count++;
  1563		}
  1564		spin_unlock(&flctx->flc_lock);
  1565	
  1566		INIT_LIST_HEAD(&locks_to_send);
  1567	
  1568		/*
  1569		 * Allocating count locks is enough because no FL_POSIX locks can be
  1570		 * added to the list while we are holding cinode->lock_sem that
  1571		 * protects locking operations of this inode.
  1572		 */
  1573		for (i = 0; i < count; i++) {
  1574			lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
  1575			if (!lck) {
  1576				rc = -ENOMEM;
  1577				goto err_out;
  1578			}
  1579			list_add_tail(&lck->llist, &locks_to_send);
  1580		}
  1581	
  1582		el = locks_to_send.next;
  1583		spin_lock(&flctx->flc_lock);
> 1584		for_each_file_lock(flock, &flctx->flc_posix) {
  1585			if (el == &locks_to_send) {
  1586				/*
  1587				 * The list ended. We don't have enough allocated
  1588				 * structures - something is really wrong.
  1589				 */
  1590				cifs_dbg(VFS, "Can't push all brlocks!\n");
  1591				break;
  1592			}
  1593			length = cifs_flock_len(flock);
  1594			if (lock_is_read(flock) || flock->fl_type == F_SHLCK)
  1595				type = CIFS_RDLCK;
  1596			else
  1597				type = CIFS_WRLCK;
  1598			lck = list_entry(el, struct lock_to_push, llist);
  1599			lck->pid = hash_lockowner(flock->fl_owner);
  1600			lck->netfid = cfile->fid.netfid;
  1601			lck->length = length;
  1602			lck->type = type;
  1603			lck->offset = flock->fl_start;
  1604		}
  1605		spin_unlock(&flctx->flc_lock);
  1606	
  1607		list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) {
  1608			int stored_rc;
  1609	
  1610			stored_rc = CIFSSMBPosixLock(xid, tcon, lck->netfid, lck->pid,
  1611						     lck->offset, lck->length, NULL,
  1612						     lck->type, 0);
  1613			if (stored_rc)
  1614				rc = stored_rc;
  1615			list_del(&lck->llist);
  1616			kfree(lck);
  1617		}
  1618	
  1619	out:
  1620		free_xid(xid);
  1621		return rc;
  1622	err_out:
  1623		list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) {
  1624			list_del(&lck->llist);
  1625			kfree(lck);
  1626		}
  1627		goto out;
  1628	}
  1629	#endif /* CONFIG_CIFS_ALLOW_INSECURE_LEGACY */
  1630	

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux