From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
Date: Mon, 30 Mar 2026 23:32:23 +0800 [thread overview]
Message-ID: <202603302356.u8QdlRIM-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Steve French <stfrench@microsoft.com>
tree: https://github.com/smfrench/smb3-kernel.git pr/146
head: d290e116f12405d8269c6041cbf68bc924b4cba6
commit: d290e116f12405d8269c6041cbf68bc924b4cba6 [1/1] smb: client: add support for O_TMPFILE (WIP)
:::::: branch date: 23 hours ago
:::::: commit date: 23 hours ago
config: x86_64-randconfig-161-20260330 (https://download.01.org/0day-ci/archive/20260330/202603302356.u8QdlRIM-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9004-gb810ac53
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/202603302356.u8QdlRIM-lkp@intel.com/
smatch warnings:
fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
vim +/old_file +509 fs/smb/client/link.c
5ab97578cbb3bf fs/cifs/link.c Steve French 2014-09-15 435
0f8dce1cb7454f fs/cifs/link.c Sachin Prabhu 2013-11-25 436 /*
0f8dce1cb7454f fs/cifs/link.c Sachin Prabhu 2013-11-25 437 * M-F Symlink Functions - End
0f8dce1cb7454f fs/cifs/link.c Sachin Prabhu 2013-11-25 438 */
8bfb50a882ccd9 fs/cifs/link.c Stefan Metzmacher 2010-07-31 439
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 440 int
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 441 cifs_hardlink(struct dentry *old_file, struct inode *inode,
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 442 struct dentry *direntry)
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 443 {
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 444 int rc = -EACCES;
6d5786a34d98bf fs/cifs/link.c Pavel Shilovsky 2012-06-20 445 unsigned int xid;
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 446 const char *from_name, *to_name;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 447 void *page1 = NULL, *page2 = NULL;
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 448 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 449 struct tcon_link *tlink;
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 450 struct cifs_tcon *tcon;
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 451 struct TCP_Server_Info *server;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 452 struct cifsInodeInfo *cifsInode;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 453
087f757b012985 fs/cifs/link.c Steve French 2021-04-29 454 if (unlikely(cifs_forced_shutdown(cifs_sb)))
f80ac7eda1cf52 fs/smb/client/link.c David Howells 2025-10-24 455 return smb_EIO(smb_eio_trace_forced_shutdown);
087f757b012985 fs/cifs/link.c Steve French 2021-04-29 456
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 457 tlink = cifs_sb_tlink(cifs_sb);
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 458 if (IS_ERR(tlink))
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 459 return PTR_ERR(tlink);
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 460 tcon = tlink_tcon(tlink);
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 461
6d5786a34d98bf fs/cifs/link.c Pavel Shilovsky 2012-06-20 462 xid = get_xid();
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 463
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 @464 if (old_file && d_really_is_positive(old_file) &&
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 465 test_bit(CIFS_INO_TMPFILE, &CIFS_I(d_inode(old_file))->flags)) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 466 from_name = NULL;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 467 } else {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 468 page1 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 469 from_name = build_path_from_dentry(old_file, page1);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 470 if (IS_ERR(from_name)) {
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 471 rc = PTR_ERR(from_name);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 472 goto cifs_hl_exit;
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 473 }
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 474 }
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 475
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 476 page2 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 477 to_name = build_path_from_dentry(direntry, page2);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 478 if (IS_ERR(to_name)) {
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 479 rc = PTR_ERR(to_name);
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 480 goto cifs_hl_exit;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 481 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 482
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 483 #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 484 if (tcon->unix_ext)
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 485 rc = CIFSUnixCreateHardLink(xid, tcon, from_name, to_name,
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 486 cifs_sb->local_nls,
2baa2682531ff0 fs/cifs/link.c Steve French 2014-09-27 487 cifs_remap(cifs_sb));
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 488 else {
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 489 #else
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 490 {
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 491 #endif /* CONFIG_CIFS_ALLOW_INSECURE_LEGACY */
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 492 server = tcon->ses->server;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 493 if (!server->ops->create_hardlink) {
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 494 rc = -ENOSYS;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 495 goto cifs_hl_exit;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 496 }
5408990aa662bc fs/smb/client/link.c Paulo Alcantara 2023-11-25 497 rc = server->ops->create_hardlink(xid, tcon, old_file,
5408990aa662bc fs/smb/client/link.c Paulo Alcantara 2023-11-25 498 from_name, to_name, cifs_sb);
083d3a2cff514c fs/cifs/link.c Steve French 2006-03-03 499 if ((rc == -EIO) || (rc == -EINVAL))
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 500 rc = -EOPNOTSUPP;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 501 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 502
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 503 d_drop(direntry); /* force new lookup from server of target */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 504
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 505 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 506 * if source file is cached (oplocked) revalidate will not go to server
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 507 * until the file is closed or oplock broken so update nlinks locally
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 508 */
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 @509 if (d_really_is_positive(old_file)) {
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 510 cifsInode = CIFS_I(d_inode(old_file));
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 511 if (rc == 0) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 512 clear_bit(CIFS_INO_TMPFILE, &cifsInode->flags);
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 513 spin_lock(&d_inode(old_file)->i_lock);
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 514 inc_nlink(d_inode(old_file));
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 515 spin_unlock(&d_inode(old_file)->i_lock);
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 516
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 517 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 518 * parent dir timestamps will update from srv within a
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 519 * second, would it really be worth it to set the parent
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 520 * dir cifs inode time to zero to force revalidate
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 521 * (faster) for it too?
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 522 */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 523 }
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 524 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 525 * if not oplocked will force revalidate to get info on source
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 526 * file from srv. Note Samba server prior to 4.2 has bug -
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 527 * not updating src file ctime on hardlinks but Windows servers
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 528 * handle it properly
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 529 */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 530 cifsInode->time = 0;
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 531
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 532 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 533 * Will update parent dir timestamps from srv within a second.
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 534 * Would it really be worth it to set the parent dir (cifs
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 535 * inode) time field to zero to force revalidate on parent
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 536 * directory faster ie
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 537 *
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 538 * CIFS_I(inode)->time = 0;
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 539 */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 540 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 541
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 542 cifs_hl_exit:
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 543 free_dentry_path(page1);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 544 free_dentry_path(page2);
6d5786a34d98bf fs/cifs/link.c Pavel Shilovsky 2012-06-20 545 free_xid(xid);
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 546 cifs_put_tlink(tlink);
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 547 return rc;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 548 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 549
:::::: The code at line 509 was first introduced by commit
:::::: 2b0143b5c986be1ce8408b3aadc4709e0a94429d VFS: normal filesystems (and lustre): d_inode() annotations
:::::: TO: David Howells <dhowells@redhat.com>
:::::: CC: Al Viro <viro@zeniv.linux.org.uk>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <error27@gmail.com>
To: oe-kbuild@lists.linux.dev, Steve French <stfrench@microsoft.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev
Subject: [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
Date: Mon, 30 Mar 2026 22:59:32 +0300 [thread overview]
Message-ID: <202603302356.u8QdlRIM-lkp@intel.com> (raw)
Message-ID: <20260330195932.yH6-UpOf3VlugwPadIwlCM9UnKc7y3PcuNfUxcv8L54@z> (raw)
tree: https://github.com/smfrench/smb3-kernel.git pr/146
head: d290e116f12405d8269c6041cbf68bc924b4cba6
commit: d290e116f12405d8269c6041cbf68bc924b4cba6 [1/1] smb: client: add support for O_TMPFILE (WIP)
config: x86_64-randconfig-161-20260330 (https://download.01.org/0day-ci/archive/20260330/202603302356.u8QdlRIM-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
smatch: v0.5.0-9004-gb810ac53
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/202603302356.u8QdlRIM-lkp@intel.com/
smatch warnings:
fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464)
vim +/old_file +509 fs/smb/client/link.c
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 440 int
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 441 cifs_hardlink(struct dentry *old_file, struct inode *inode,
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 442 struct dentry *direntry)
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 443 {
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 444 int rc = -EACCES;
6d5786a34d98bf fs/cifs/link.c Pavel Shilovsky 2012-06-20 445 unsigned int xid;
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 446 const char *from_name, *to_name;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 447 void *page1 = NULL, *page2 = NULL;
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 448 struct cifs_sb_info *cifs_sb = CIFS_SB(inode->i_sb);
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 449 struct tcon_link *tlink;
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 450 struct cifs_tcon *tcon;
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 451 struct TCP_Server_Info *server;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 452 struct cifsInodeInfo *cifsInode;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 453
087f757b012985 fs/cifs/link.c Steve French 2021-04-29 454 if (unlikely(cifs_forced_shutdown(cifs_sb)))
f80ac7eda1cf52 fs/smb/client/link.c David Howells 2025-10-24 455 return smb_EIO(smb_eio_trace_forced_shutdown);
087f757b012985 fs/cifs/link.c Steve French 2021-04-29 456
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 457 tlink = cifs_sb_tlink(cifs_sb);
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 458 if (IS_ERR(tlink))
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 459 return PTR_ERR(tlink);
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 460 tcon = tlink_tcon(tlink);
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 461
6d5786a34d98bf fs/cifs/link.c Pavel Shilovsky 2012-06-20 462 xid = get_xid();
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 463
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 @464 if (old_file && d_really_is_positive(old_file) &&
^^^^^^^^
If old_file is NULL
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 465 test_bit(CIFS_INO_TMPFILE, &CIFS_I(d_inode(old_file))->flags)) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 466 from_name = NULL;
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 467 } else {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 468 page1 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 469 from_name = build_path_from_dentry(old_file, page1);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 470 if (IS_ERR(from_name)) {
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 471 rc = PTR_ERR(from_name);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 472 goto cifs_hl_exit;
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 473 }
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 474 }
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 475
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 476 page2 = alloc_dentry_path();
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 477 to_name = build_path_from_dentry(direntry, page2);
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 478 if (IS_ERR(to_name)) {
f6a9bc336b600e fs/cifs/link.c Al Viro 2021-03-05 479 rc = PTR_ERR(to_name);
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 480 goto cifs_hl_exit;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 481 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 482
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 483 #ifdef CONFIG_CIFS_ALLOW_INSECURE_LEGACY
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 484 if (tcon->unix_ext)
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 485 rc = CIFSUnixCreateHardLink(xid, tcon, from_name, to_name,
7ffec372458d16 fs/cifs/link.c Jeff Layton 2010-09-29 486 cifs_sb->local_nls,
2baa2682531ff0 fs/cifs/link.c Steve French 2014-09-27 487 cifs_remap(cifs_sb));
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 488 else {
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 489 #else
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 490 {
fb157ed226d225 fs/cifs/link.c Steve French 2022-08-01 491 #endif /* CONFIG_CIFS_ALLOW_INSECURE_LEGACY */
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 492 server = tcon->ses->server;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 493 if (!server->ops->create_hardlink) {
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 494 rc = -ENOSYS;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 495 goto cifs_hl_exit;
abf9767c823bf5 fs/cifs/link.c Christian Engelmayer 2014-01-11 496 }
5408990aa662bc fs/smb/client/link.c Paulo Alcantara 2023-11-25 497 rc = server->ops->create_hardlink(xid, tcon, old_file,
5408990aa662bc fs/smb/client/link.c Paulo Alcantara 2023-11-25 498 from_name, to_name, cifs_sb);
083d3a2cff514c fs/cifs/link.c Steve French 2006-03-03 499 if ((rc == -EIO) || (rc == -EINVAL))
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 500 rc = -EOPNOTSUPP;
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 501 }
^1da177e4c3f41 fs/cifs/link.c Linus Torvalds 2005-04-16 502
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 503 d_drop(direntry); /* force new lookup from server of target */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 504
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 505 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 506 * if source file is cached (oplocked) revalidate will not go to server
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 507 * until the file is closed or oplock broken so update nlinks locally
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 508 */
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 @509 if (d_really_is_positive(old_file)) {
^^^^^^^^
Then we are toasted here. Unchecked dereference.
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 510 cifsInode = CIFS_I(d_inode(old_file));
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 511 if (rc == 0) {
d290e116f12405 fs/smb/client/link.c Paulo Alcantara 2026-03-27 512 clear_bit(CIFS_INO_TMPFILE, &cifsInode->flags);
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 513 spin_lock(&d_inode(old_file)->i_lock);
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 514 inc_nlink(d_inode(old_file));
2b0143b5c986be fs/cifs/link.c David Howells 2015-03-17 515 spin_unlock(&d_inode(old_file)->i_lock);
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 516
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 517 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 518 * parent dir timestamps will update from srv within a
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 519 * second, would it really be worth it to set the parent
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 520 * dir cifs inode time to zero to force revalidate
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 521 * (faster) for it too?
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 522 */
31ec35d6c81175 fs/cifs/link.c Steve French 2006-11-16 523 }
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 524 /*
d6e906f1b571d1 fs/cifs/link.c Steve French 2012-09-18 525 * if not oplocked will force revalidate to get info on source
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 526 * file from srv. Note Samba server prior to 4.2 has bug -
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 527 * not updating src file ctime on hardlinks but Windows servers
ff273cb879fbc6 fs/cifs/link.c Steve French 2014-10-17 528 * handle it properly
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2026-03-30 15:33 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-30 15:32 kernel test robot [this message]
2026-03-30 19:59 ` [smfrench-smb3:pr/146 1/1] fs/smb/client/link.c:509 cifs_hardlink() error: we previously assumed 'old_file' could be null (see line 464) Dan Carpenter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202603302356.u8QdlRIM-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.