public inbox for oe-kbuild@lists.linux.dev
 help / color / mirror / Atom feed
* fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR'
@ 2026-03-22 22:21 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-22 22:21 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

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

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

* fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR'
@ 2026-03-27  3:04 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-27  3:04 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

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:   46b513250491a7bfc97d98791dbe6a10bcc8129d
commit: 88d5baf69082e5b410296435008329676b687549 Change inode_operations.mkdir to return struct dentry *
date:   1 year, 1 month ago
:::::: branch date: 6 hours ago
:::::: commit date: 1 year, 1 month ago
config: i386-randconfig-141-20260322 (https://download.01.org/0day-ci/archive/20260327/202603271007.DBfSkXuZ-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/202603271007.DBfSkXuZ-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

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

end of thread, other threads:[~2026-03-27  3:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-27  3:04 fs/jfs/namei.c:311 jfs_mkdir() warn: passing zero to 'ERR_PTR' kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2026-03-22 22:21 kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox