All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR'
Date: Mon, 23 Mar 2026 06:21:53 +0800	[thread overview]
Message-ID: <202603230639.7DPVYNEM-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: NeilBrown <neilb@suse.de>
CC: Christian Brauner <brauner@kernel.org>
CC: Jeff Layton <jlayton@kernel.org>
CC: Jan Kara <jack@suse.cz>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   ec69c9e88315c4be70c283f18c2ff130da6320b5
commit: 88d5baf69082e5b410296435008329676b687549 Change inode_operations.mkdir to return struct dentry *
date:   1 year, 1 month ago
:::::: branch date: 4 hours ago
:::::: commit date: 1 year, 1 month ago
config: i386-randconfig-141-20260322 (https://download.01.org/0day-ci/archive/20260323/202603230639.7DPVYNEM-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/202603230639.7DPVYNEM-lkp@intel.com/

smatch warnings:
fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR'
fs/orangefs/namei.c:369 orangefs_mkdir() warn: passing zero to 'ERR_PTR'

vim +/ERR_PTR +311 fs/jfs/namei.c

^1da177e4c3f41 Linus Torvalds    2005-04-16  178  
^1da177e4c3f41 Linus Torvalds    2005-04-16  179  
^1da177e4c3f41 Linus Torvalds    2005-04-16  180  /*
^1da177e4c3f41 Linus Torvalds    2005-04-16  181   * NAME:	jfs_mkdir(dip, dentry, mode)
^1da177e4c3f41 Linus Torvalds    2005-04-16  182   *
^1da177e4c3f41 Linus Torvalds    2005-04-16  183   * FUNCTION:	create a child directory in the parent directory <dip>
^1da177e4c3f41 Linus Torvalds    2005-04-16  184   *		with name = <from dentry> and mode = <mode>
^1da177e4c3f41 Linus Torvalds    2005-04-16  185   *
^1da177e4c3f41 Linus Torvalds    2005-04-16  186   * PARAMETER:	dip	- parent directory vnode
^1da177e4c3f41 Linus Torvalds    2005-04-16  187   *		dentry	- dentry of child directory
^1da177e4c3f41 Linus Torvalds    2005-04-16  188   *		mode	- create mode (rwxrwxrwx).
^1da177e4c3f41 Linus Torvalds    2005-04-16  189   *
88d5baf69082e5 NeilBrown         2025-02-27  190   * RETURN:	ERR_PTR() of errors from subroutines.
^1da177e4c3f41 Linus Torvalds    2005-04-16  191   *
^1da177e4c3f41 Linus Torvalds    2005-04-16  192   * note:
a83722f45c5baa Colin Ian King    2018-10-26  193   * EACCES: user needs search+write permission on the parent directory
^1da177e4c3f41 Linus Torvalds    2005-04-16  194   */
88d5baf69082e5 NeilBrown         2025-02-27  195  static struct dentry *jfs_mkdir(struct mnt_idmap *idmap, struct inode *dip,
549c7297717c32 Christian Brauner 2021-01-21  196  				struct dentry *dentry, umode_t mode)
^1da177e4c3f41 Linus Torvalds    2005-04-16  197  {
^1da177e4c3f41 Linus Torvalds    2005-04-16  198  	int rc = 0;
^1da177e4c3f41 Linus Torvalds    2005-04-16  199  	tid_t tid;		/* transaction id */
^1da177e4c3f41 Linus Torvalds    2005-04-16  200  	struct inode *ip = NULL;	/* child directory inode */
^1da177e4c3f41 Linus Torvalds    2005-04-16  201  	ino_t ino;
^1da177e4c3f41 Linus Torvalds    2005-04-16  202  	struct component_name dname;	/* child directory name */
^1da177e4c3f41 Linus Torvalds    2005-04-16  203  	struct btstack btstack;
^1da177e4c3f41 Linus Torvalds    2005-04-16  204  	struct inode *iplist[2];
^1da177e4c3f41 Linus Torvalds    2005-04-16  205  	struct tblock *tblk;
^1da177e4c3f41 Linus Torvalds    2005-04-16  206  
a455589f181e60 Al Viro           2014-10-21  207  	jfs_info("jfs_mkdir: dip:0x%p name:%pd", dip, dentry);
^1da177e4c3f41 Linus Torvalds    2005-04-16  208  
acc84b05b1f463 Dave Kleikamp     2015-07-15  209  	rc = dquot_initialize(dip);
acc84b05b1f463 Dave Kleikamp     2015-07-15  210  	if (rc)
acc84b05b1f463 Dave Kleikamp     2015-07-15  211  		goto out1;
907f4554e2521c Christoph Hellwig 2010-03-03  212  
^1da177e4c3f41 Linus Torvalds    2005-04-16  213  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16  214  	 * search parent directory for entry/freespace
^1da177e4c3f41 Linus Torvalds    2005-04-16  215  	 * (dtSearch() returns parent directory page pinned)
^1da177e4c3f41 Linus Torvalds    2005-04-16  216  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  217  	if ((rc = get_UCSname(&dname, dentry)))
^1da177e4c3f41 Linus Torvalds    2005-04-16  218  		goto out1;
^1da177e4c3f41 Linus Torvalds    2005-04-16  219  
^1da177e4c3f41 Linus Torvalds    2005-04-16  220  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16  221  	 * Either iAlloc() or txBegin() may block.  Deadlock can occur if we
^1da177e4c3f41 Linus Torvalds    2005-04-16  222  	 * block there while holding dtree page, so we allocate the inode &
^1da177e4c3f41 Linus Torvalds    2005-04-16  223  	 * begin the transaction before we search the directory.
^1da177e4c3f41 Linus Torvalds    2005-04-16  224  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  225  	ip = ialloc(dip, S_IFDIR | mode);
087387f90f577f Akinobu Mita      2006-09-14  226  	if (IS_ERR(ip)) {
087387f90f577f Akinobu Mita      2006-09-14  227  		rc = PTR_ERR(ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  228  		goto out2;
^1da177e4c3f41 Linus Torvalds    2005-04-16  229  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  230  
^1da177e4c3f41 Linus Torvalds    2005-04-16  231  	tid = txBegin(dip->i_sb, 0);
^1da177e4c3f41 Linus Torvalds    2005-04-16  232  
82d5b9a7c63054 Dave Kleikamp     2007-01-09  233  	mutex_lock_nested(&JFS_IP(dip)->commit_mutex, COMMIT_MUTEX_PARENT);
82d5b9a7c63054 Dave Kleikamp     2007-01-09  234  	mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD);
^1da177e4c3f41 Linus Torvalds    2005-04-16  235  
4f4b401bfaa97e Dave Kleikamp     2005-09-01  236  	rc = jfs_init_acl(tid, ip, dip);
4f4b401bfaa97e Dave Kleikamp     2005-09-01  237  	if (rc)
4f4b401bfaa97e Dave Kleikamp     2005-09-01  238  		goto out3;
4f4b401bfaa97e Dave Kleikamp     2005-09-01  239  
2a7dba391e5628 Eric Paris        2011-02-01  240  	rc = jfs_init_security(tid, ip, dip, &dentry->d_name);
1d15b10f95d4c4 Dave Kleikamp     2005-09-01  241  	if (rc) {
1d15b10f95d4c4 Dave Kleikamp     2005-09-01  242  		txAbort(tid, 0);
1d15b10f95d4c4 Dave Kleikamp     2005-09-01  243  		goto out3;
1d15b10f95d4c4 Dave Kleikamp     2005-09-01  244  	}
1d15b10f95d4c4 Dave Kleikamp     2005-09-01  245  
^1da177e4c3f41 Linus Torvalds    2005-04-16  246  	if ((rc = dtSearch(dip, &dname, &ino, &btstack, JFS_CREATE))) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  247  		jfs_err("jfs_mkdir: dtSearch returned %d", rc);
4f4b401bfaa97e Dave Kleikamp     2005-09-01  248  		txAbort(tid, 0);
^1da177e4c3f41 Linus Torvalds    2005-04-16  249  		goto out3;
^1da177e4c3f41 Linus Torvalds    2005-04-16  250  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  251  
^1da177e4c3f41 Linus Torvalds    2005-04-16  252  	tblk = tid_to_tblock(tid);
^1da177e4c3f41 Linus Torvalds    2005-04-16  253  	tblk->xflag |= COMMIT_CREATE;
^1da177e4c3f41 Linus Torvalds    2005-04-16  254  	tblk->ino = ip->i_ino;
^1da177e4c3f41 Linus Torvalds    2005-04-16  255  	tblk->u.ixpxd = JFS_IP(ip)->ixpxd;
^1da177e4c3f41 Linus Torvalds    2005-04-16  256  
^1da177e4c3f41 Linus Torvalds    2005-04-16  257  	iplist[0] = dip;
^1da177e4c3f41 Linus Torvalds    2005-04-16  258  	iplist[1] = ip;
^1da177e4c3f41 Linus Torvalds    2005-04-16  259  
^1da177e4c3f41 Linus Torvalds    2005-04-16  260  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16  261  	 * initialize the child directory in-line in inode
^1da177e4c3f41 Linus Torvalds    2005-04-16  262  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  263  	dtInitRoot(tid, ip, dip->i_ino);
^1da177e4c3f41 Linus Torvalds    2005-04-16  264  
^1da177e4c3f41 Linus Torvalds    2005-04-16  265  	/*
^1da177e4c3f41 Linus Torvalds    2005-04-16  266  	 * create entry in parent directory for child directory
^1da177e4c3f41 Linus Torvalds    2005-04-16  267  	 * (dtInsert() releases parent directory page)
^1da177e4c3f41 Linus Torvalds    2005-04-16  268  	 */
^1da177e4c3f41 Linus Torvalds    2005-04-16  269  	ino = ip->i_ino;
^1da177e4c3f41 Linus Torvalds    2005-04-16  270  	if ((rc = dtInsert(tid, dip, &dname, &ino, &btstack))) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  271  		if (rc == -EIO) {
^1da177e4c3f41 Linus Torvalds    2005-04-16  272  			jfs_err("jfs_mkdir: dtInsert returned -EIO");
^1da177e4c3f41 Linus Torvalds    2005-04-16  273  			txAbort(tid, 1);	/* Marks Filesystem dirty */
^1da177e4c3f41 Linus Torvalds    2005-04-16  274  		} else
^1da177e4c3f41 Linus Torvalds    2005-04-16  275  			txAbort(tid, 0);	/* Filesystem full */
^1da177e4c3f41 Linus Torvalds    2005-04-16  276  		goto out3;
^1da177e4c3f41 Linus Torvalds    2005-04-16  277  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  278  
bfe8684869601d Miklos Szeredi    2011-10-28  279  	set_nlink(ip, 2);	/* for '.' */
^1da177e4c3f41 Linus Torvalds    2005-04-16  280  	ip->i_op = &jfs_dir_inode_operations;
^1da177e4c3f41 Linus Torvalds    2005-04-16  281  	ip->i_fop = &jfs_dir_operations;
^1da177e4c3f41 Linus Torvalds    2005-04-16  282  
^1da177e4c3f41 Linus Torvalds    2005-04-16  283  	mark_inode_dirty(ip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  284  
^1da177e4c3f41 Linus Torvalds    2005-04-16  285  	/* update parent directory inode */
d8c76e6f45c111 Dave Hansen       2006-09-30  286  	inc_nlink(dip);		/* for '..' from child directory */
dc34d1330c2c08 Jeff Layton       2023-10-04  287  	inode_set_mtime_to_ts(dip, inode_set_ctime_current(dip));
^1da177e4c3f41 Linus Torvalds    2005-04-16  288  	mark_inode_dirty(dip);
^1da177e4c3f41 Linus Torvalds    2005-04-16  289  
^1da177e4c3f41 Linus Torvalds    2005-04-16  290  	rc = txCommit(tid, 2, &iplist[0], 0);
^1da177e4c3f41 Linus Torvalds    2005-04-16  291  
^1da177e4c3f41 Linus Torvalds    2005-04-16  292        out3:
^1da177e4c3f41 Linus Torvalds    2005-04-16  293  	txEnd(tid);
1de87444f8f910 Ingo Molnar       2006-01-24  294  	mutex_unlock(&JFS_IP(ip)->commit_mutex);
48ce8b056c8892 Evgeniy Dushistov 2006-06-05  295  	mutex_unlock(&JFS_IP(dip)->commit_mutex);
^1da177e4c3f41 Linus Torvalds    2005-04-16  296  	if (rc) {
4f4b401bfaa97e Dave Kleikamp     2005-09-01  297  		free_ea_wmap(ip);
6d6b77f163c7ea Miklos Szeredi    2011-10-28  298  		clear_nlink(ip);
a6cbedfa8783b4 Al Viro           2018-06-29  299  		discard_new_inode(ip);
1f3403fa640f9f Dave Kleikamp     2008-12-30  300  	} else {
1e2e547a93a00e Al Viro           2018-05-04  301  		d_instantiate_new(dentry, ip);
1f3403fa640f9f Dave Kleikamp     2008-12-30  302  	}
^1da177e4c3f41 Linus Torvalds    2005-04-16  303  
^1da177e4c3f41 Linus Torvalds    2005-04-16  304        out2:
^1da177e4c3f41 Linus Torvalds    2005-04-16  305  	free_UCSname(&dname);
^1da177e4c3f41 Linus Torvalds    2005-04-16  306  
^1da177e4c3f41 Linus Torvalds    2005-04-16  307  
^1da177e4c3f41 Linus Torvalds    2005-04-16  308        out1:
^1da177e4c3f41 Linus Torvalds    2005-04-16  309  
^1da177e4c3f41 Linus Torvalds    2005-04-16  310  	jfs_info("jfs_mkdir: rc:%d", rc);
88d5baf69082e5 NeilBrown         2025-02-27 @311  	return ERR_PTR(rc);
^1da177e4c3f41 Linus Torvalds    2005-04-16  312  }
^1da177e4c3f41 Linus Torvalds    2005-04-16  313  

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

             reply	other threads:[~2026-03-22 22:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-22 22:21 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-03-27  3:04 fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR' kernel test robot

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=202603230639.7DPVYNEM-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.