All of lore.kernel.org
 help / color / mirror / Atom feed
* [sandeen:mount-api 7/7] fs/devpts/inode.c:354:8: error: call to undeclared function 'parse_mount_options'; ISO C99 and later do not support implicit function declarations
@ 2024-10-26 17:56 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-10-26 17:56 UTC (permalink / raw)
  To: Eric Sandeen; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/sandeen/linux.git mount-api
head:   cf7abe7ded8f2c97728ebb2655ca09970b4cdeb6
commit: cf7abe7ded8f2c97728ebb2655ca09970b4cdeb6 [7/7] devpts: convert to the new mount API
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20241027/202410270136.pUT4Udbn-lkp@intel.com/config)
compiler: clang version 19.1.2 (https://github.com/llvm/llvm-project 7ba7d8e2f7b6445b60679da826210cdde29eaf8b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241027/202410270136.pUT4Udbn-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410270136.pUT4Udbn-lkp@intel.com/

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

   In file included from fs/devpts/inode.c:19:
   In file included from include/linux/tty.h:11:
   In file included from include/linux/tty_port.h:5:
   In file included from include/linux/kfifo.h:40:
   In file included from include/linux/dma-mapping.h:11:
   In file included from include/linux/scatterlist.h:8:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:504:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     504 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     505 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:511:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     511 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     512 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:524:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     524 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     525 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
>> fs/devpts/inode.c:251:18: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
     251 |         if (fc->purpose = FS_CONTEXT_FOR_MOUNT)
         |             ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
   fs/devpts/inode.c:251:18: note: place parentheses around the assignment to silence this warning
     251 |         if (fc->purpose = FS_CONTEXT_FOR_MOUNT)
         |                         ^                     
         |             (                                 )
   fs/devpts/inode.c:251:18: note: use '==' to turn this assignment into an equality comparison
     251 |         if (fc->purpose = FS_CONTEXT_FOR_MOUNT)
         |                         ^
         |                         ==
>> fs/devpts/inode.c:354:8: error: call to undeclared function 'parse_mount_options'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     354 |         err = parse_mount_options(data, PARSE_REMOUNT, opts);
         |               ^
   fs/devpts/inode.c:354:8: note: did you mean 'parse_early_options'?
   include/linux/init.h:382:13: note: 'parse_early_options' declared here
     382 | void __init parse_early_options(char *cmdline);
         |             ^
>> fs/devpts/inode.c:492:17: error: use of undeclared identifier 'devpts_reconfigure'
     492 |         .reconfigure    = devpts_reconfigure,
         |                           ^
   5 warnings and 2 errors generated.


vim +/parse_mount_options +354 fs/devpts/inode.c

2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  231  
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  232  /*
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  233   * parse_mount_options():
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  234   *	Set @opts to mount options specified in @data. If an option is not
eedf265aa003b4 Eric W. Biederman     2016-06-02  235   *	specified in @data, set it to its default value.
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  236   *
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  237   * Note: @data may be NULL (in which case all options are set to default).
1f71ebedb3f8ce Sukadev Bhattiprolu   2009-05-14  238   */
cf7abe7ded8f2c Eric Sandeen          2024-10-25  239  // static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts)
cf7abe7ded8f2c Eric Sandeen          2024-10-25  240  static int devpts_parse_param(struct fs_context *fc, struct fs_parameter *param)
^1da177e4c3f41 Linus Torvalds        2005-04-16  241  {
cf7abe7ded8f2c Eric Sandeen          2024-10-25  242  	struct pts_fs_info *fsi = fc->s_fs_info;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  243  	struct pts_mount_opts *opts = &fsi->mount_opts;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  244  	struct fs_parse_result result;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  245  	int opt;
7a673c6b8fff4b Domen Puncer          2006-03-23  246  
7a673c6b8fff4b Domen Puncer          2006-03-23  247  
eedf265aa003b4 Eric W. Biederman     2016-06-02  248  	/* Only allow instances mounted from the initial mount
eedf265aa003b4 Eric W. Biederman     2016-06-02  249  	 * namespace to tap the reserve pool of ptys.
eedf265aa003b4 Eric W. Biederman     2016-06-02  250  	 */
cf7abe7ded8f2c Eric Sandeen          2024-10-25 @251  	if (fc->purpose = FS_CONTEXT_FOR_MOUNT)
eedf265aa003b4 Eric W. Biederman     2016-06-02  252  		opts->reserve =
eedf265aa003b4 Eric W. Biederman     2016-06-02  253  			(current->nsproxy->mnt_ns == init_task.nsproxy->mnt_ns);
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  254  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  255  	opt = fs_parse(fc, devpts_param_spec, param, &result);
7a673c6b8fff4b Domen Puncer          2006-03-23  256  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  257  	switch (opt) {
7a673c6b8fff4b Domen Puncer          2006-03-23  258  	case Opt_uid:
cf7abe7ded8f2c Eric Sandeen          2024-10-25  259  		opts->uid = result.uid;
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  260  		opts->setuid = 1;
7a673c6b8fff4b Domen Puncer          2006-03-23  261  		break;
7a673c6b8fff4b Domen Puncer          2006-03-23  262  	case Opt_gid:
cf7abe7ded8f2c Eric Sandeen          2024-10-25  263  		opts->gid = result.gid;
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  264  		opts->setgid = 1;
7a673c6b8fff4b Domen Puncer          2006-03-23  265  		break;
7a673c6b8fff4b Domen Puncer          2006-03-23  266  	case Opt_mode:
cf7abe7ded8f2c Eric Sandeen          2024-10-25  267  		opts->mode = result.uint_32 & S_IALLUGO;
7a673c6b8fff4b Domen Puncer          2006-03-23  268  		break;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  269  	case Opt_ptmxmode:
cf7abe7ded8f2c Eric Sandeen          2024-10-25  270  		opts->ptmxmode = result.uint_32 & S_IALLUGO;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  271  		break;
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  272  	case Opt_newinstance:
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  273  		break;
e9aba5158a8009 Konstantin Khlebnikov 2012-01-05  274  	case Opt_max:
cf7abe7ded8f2c Eric Sandeen          2024-10-25  275  		 if (result.int_32 < 0 || result.int_32 > NR_UNIX98_PTY_MAX)
e9aba5158a8009 Konstantin Khlebnikov 2012-01-05  276  			return -EINVAL;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  277  		opts->max = result.int_32;
e9aba5158a8009 Konstantin Khlebnikov 2012-01-05  278  		break;
7a673c6b8fff4b Domen Puncer          2006-03-23  279  	default:
^1da177e4c3f41 Linus Torvalds        2005-04-16  280  		return -EINVAL;
^1da177e4c3f41 Linus Torvalds        2005-04-16  281  	}
^1da177e4c3f41 Linus Torvalds        2005-04-16  282  
^1da177e4c3f41 Linus Torvalds        2005-04-16  283  	return 0;
^1da177e4c3f41 Linus Torvalds        2005-04-16  284  }
^1da177e4c3f41 Linus Torvalds        2005-04-16  285  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  286  static int mknod_ptmx(struct super_block *sb)
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  287  {
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  288  	int mode;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  289  	int rc = -ENOMEM;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  290  	struct dentry *dentry;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  291  	struct inode *inode;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  292  	struct dentry *root = sb->s_root;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  293  	struct pts_fs_info *fsi = DEVPTS_SB(sb);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  294  	struct pts_mount_opts *opts = &fsi->mount_opts;
e98d41370392db Eric W. Biederman     2016-09-14  295  	kuid_t ptmx_uid = current_fsuid();
e98d41370392db Eric W. Biederman     2016-09-14  296  	kgid_t ptmx_gid = current_fsgid();
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  297  
5955102c9984fa Al Viro               2016-01-22  298  	inode_lock(d_inode(root));
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  299  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  300  	/* If we have already created ptmx node, return */
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  301  	if (fsi->ptmx_dentry) {
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  302  		rc = 0;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  303  		goto out;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  304  	}
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  305  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  306  	dentry = d_alloc_name(root, "ptmx");
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  307  	if (!dentry) {
04541a2f316022 Fabian Frederick      2014-06-06  308  		pr_err("Unable to alloc dentry for ptmx node\n");
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  309  		goto out;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  310  	}
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  311  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  312  	/*
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  313  	 * Create a new 'ptmx' node in this mount of devpts.
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  314  	 */
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  315  	inode = new_inode(sb);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  316  	if (!inode) {
04541a2f316022 Fabian Frederick      2014-06-06  317  		pr_err("Unable to alloc inode for ptmx node\n");
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  318  		dput(dentry);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  319  		goto out;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  320  	}
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  321  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  322  	inode->i_ino = 2;
69d9116d0a0d99 Jeff Layton           2023-10-04  323  	simple_inode_init_ts(inode);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  324  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  325  	mode = S_IFCHR|opts->ptmxmode;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  326  	init_special_inode(inode, mode, MKDEV(TTYAUX_MAJOR, 2));
e98d41370392db Eric W. Biederman     2016-09-14  327  	inode->i_uid = ptmx_uid;
e98d41370392db Eric W. Biederman     2016-09-14  328  	inode->i_gid = ptmx_gid;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  329  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  330  	d_add(dentry, inode);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  331  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  332  	fsi->ptmx_dentry = dentry;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  333  	rc = 0;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  334  out:
5955102c9984fa Al Viro               2016-01-22  335  	inode_unlock(d_inode(root));
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  336  	return rc;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  337  }
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  338  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  339  static void update_ptmx_mode(struct pts_fs_info *fsi)
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  340  {
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  341  	struct inode *inode;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  342  	if (fsi->ptmx_dentry) {
2b0143b5c986be David Howells         2015-03-17  343  		inode = d_inode(fsi->ptmx_dentry);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  344  		inode->i_mode = S_IFCHR|fsi->mount_opts.ptmxmode;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  345  	}
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  346  }
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  347  
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  348  static int devpts_remount(struct super_block *sb, int *flags, char *data)
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  349  {
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  350  	int err;
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  351  	struct pts_fs_info *fsi = DEVPTS_SB(sb);
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  352  	struct pts_mount_opts *opts = &fsi->mount_opts;
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  353  
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02 @354  	err = parse_mount_options(data, PARSE_REMOUNT, opts);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  355  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  356  	/*
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  357  	 * parse_mount_options() restores options to default values
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  358  	 * before parsing and may have changed ptmxmode. So, update the
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  359  	 * mode in the inode too. Bogus options don't fail the remount,
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  360  	 * so do this even on error return.
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  361  	 */
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  362  	update_ptmx_mode(fsi);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  363  
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  364  	return err;
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  365  }
53af8ee4094d80 Sukadev Bhattiprolu   2009-01-02  366  
34c80b1d93e6e2 Al Viro               2011-12-08  367  static int devpts_show_options(struct seq_file *seq, struct dentry *root)
b87a267eb7291d Miklos Szeredi        2008-02-08  368  {
34c80b1d93e6e2 Al Viro               2011-12-08  369  	struct pts_fs_info *fsi = DEVPTS_SB(root->d_sb);
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  370  	struct pts_mount_opts *opts = &fsi->mount_opts;
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  371  
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  372  	if (opts->setuid)
04541a2f316022 Fabian Frederick      2014-06-06  373  		seq_printf(seq, ",uid=%u",
04541a2f316022 Fabian Frederick      2014-06-06  374  			   from_kuid_munged(&init_user_ns, opts->uid));
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  375  	if (opts->setgid)
04541a2f316022 Fabian Frederick      2014-06-06  376  		seq_printf(seq, ",gid=%u",
04541a2f316022 Fabian Frederick      2014-06-06  377  			   from_kgid_munged(&init_user_ns, opts->gid));
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  378  	seq_printf(seq, ",mode=%03o", opts->mode);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  379  	seq_printf(seq, ",ptmxmode=%03o", opts->ptmxmode);
e9aba5158a8009 Konstantin Khlebnikov 2012-01-05  380  	if (opts->max < NR_UNIX98_PTY_MAX)
e9aba5158a8009 Konstantin Khlebnikov 2012-01-05  381  		seq_printf(seq, ",max=%d", opts->max);
b87a267eb7291d Miklos Szeredi        2008-02-08  382  
b87a267eb7291d Miklos Szeredi        2008-02-08  383  	return 0;
b87a267eb7291d Miklos Szeredi        2008-02-08  384  }
b87a267eb7291d Miklos Szeredi        2008-02-08  385  
ee9b6d61a2a43c Josef 'Jeff' Sipek    2007-02-12  386  static const struct super_operations devpts_sops = {
^1da177e4c3f41 Linus Torvalds        2005-04-16  387  	.statfs		= simple_statfs,
^1da177e4c3f41 Linus Torvalds        2005-04-16  388  	.remount_fs	= devpts_remount,
b87a267eb7291d Miklos Szeredi        2008-02-08  389  	.show_options	= devpts_show_options,
^1da177e4c3f41 Linus Torvalds        2005-04-16  390  };
^1da177e4c3f41 Linus Torvalds        2005-04-16  391  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  392  #if 0
67245ff332064c Linus Torvalds        2016-04-16  393  static void *new_pts_fs_info(struct super_block *sb)
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  394  {
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  395  	struct pts_fs_info *fsi;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  396  
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  397  	fsi = kzalloc(sizeof(struct pts_fs_info), GFP_KERNEL);
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  398  	if (!fsi)
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  399  		return NULL;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  400  
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  401  	ida_init(&fsi->allocated_ptys);
31af0abbdafb66 Sukadev Bhattiprolu   2009-01-02  402  	fsi->mount_opts.mode = DEVPTS_DEFAULT_MODE;
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  403  	fsi->mount_opts.ptmxmode = DEVPTS_DEFAULT_PTMX_MODE;
67245ff332064c Linus Torvalds        2016-04-16  404  	fsi->sb = sb;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  405  
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  406  	return fsi;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  407  }
cf7abe7ded8f2c Eric Sandeen          2024-10-25  408  #endif
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  409  
^1da177e4c3f41 Linus Torvalds        2005-04-16  410  static int
cf7abe7ded8f2c Eric Sandeen          2024-10-25  411  devpts_fill_super(struct super_block *s, struct fs_context *fc)
^1da177e4c3f41 Linus Torvalds        2005-04-16  412  {
^1da177e4c3f41 Linus Torvalds        2005-04-16  413  	struct inode *inode;
dee87d47365e47 Eric W. Biederman     2016-09-14  414  	int error;
^1da177e4c3f41 Linus Torvalds        2005-04-16  415  
cc50a07a247e17 Eric W. Biederman     2016-06-09  416  	s->s_iflags &= ~SB_I_NODEV;
^1da177e4c3f41 Linus Torvalds        2005-04-16  417  	s->s_blocksize = 1024;
^1da177e4c3f41 Linus Torvalds        2005-04-16  418  	s->s_blocksize_bits = 10;
^1da177e4c3f41 Linus Torvalds        2005-04-16  419  	s->s_magic = DEVPTS_SUPER_MAGIC;
^1da177e4c3f41 Linus Torvalds        2005-04-16  420  	s->s_op = &devpts_sops;
73052b0daee0b7 Varad Gautam          2019-01-24  421  	s->s_d_op = &simple_dentry_operations;
^1da177e4c3f41 Linus Torvalds        2005-04-16  422  	s->s_time_gran = 1;
^1da177e4c3f41 Linus Torvalds        2005-04-16  423  
dee87d47365e47 Eric W. Biederman     2016-09-14  424  	error = -ENOMEM;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  425  	//s->s_fs_info = new_pts_fs_info(s);
cf7abe7ded8f2c Eric Sandeen          2024-10-25  426  	//if (!s->s_fs_info)
cf7abe7ded8f2c Eric Sandeen          2024-10-25  427  	//	goto fail;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  428  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  429  	//error = parse_mount_options(data, PARSE_MOUNT, &DEVPTS_SB(s)->mount_opts);
cf7abe7ded8f2c Eric Sandeen          2024-10-25  430  	//if (error)
cf7abe7ded8f2c Eric Sandeen          2024-10-25  431  	//	goto fail;
dee87d47365e47 Eric W. Biederman     2016-09-14  432  
^1da177e4c3f41 Linus Torvalds        2005-04-16  433  	inode = new_inode(s);
^1da177e4c3f41 Linus Torvalds        2005-04-16  434  	if (!inode)
3850aba74873aa Al Viro               2012-01-08  435  		goto fail;
^1da177e4c3f41 Linus Torvalds        2005-04-16  436  	inode->i_ino = 1;
69d9116d0a0d99 Jeff Layton           2023-10-04  437  	simple_inode_init_ts(inode);
^1da177e4c3f41 Linus Torvalds        2005-04-16  438  	inode->i_mode = S_IFDIR | S_IRUGO | S_IXUGO | S_IWUSR;
^1da177e4c3f41 Linus Torvalds        2005-04-16  439  	inode->i_op = &simple_dir_inode_operations;
^1da177e4c3f41 Linus Torvalds        2005-04-16  440  	inode->i_fop = &simple_dir_operations;
bfe8684869601d Miklos Szeredi        2011-10-28  441  	set_nlink(inode, 2);
^1da177e4c3f41 Linus Torvalds        2005-04-16  442  
48fde701aff662 Al Viro               2012-01-08  443  	s->s_root = d_make_root(inode);
180d904442023d Eric W. Biederman     2016-09-14  444  	if (!s->s_root) {
04541a2f316022 Fabian Frederick      2014-06-06  445  		pr_err("get root dentry failed\n");
180d904442023d Eric W. Biederman     2016-09-14  446  		goto fail;
180d904442023d Eric W. Biederman     2016-09-14  447  	}
180d904442023d Eric W. Biederman     2016-09-14  448  
180d904442023d Eric W. Biederman     2016-09-14  449  	error = mknod_ptmx(s);
180d904442023d Eric W. Biederman     2016-09-14  450  	if (error)
180d904442023d Eric W. Biederman     2016-09-14  451  		goto fail_dput;
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  452  
180d904442023d Eric W. Biederman     2016-09-14  453  	return 0;
180d904442023d Eric W. Biederman     2016-09-14  454  fail_dput:
180d904442023d Eric W. Biederman     2016-09-14  455  	dput(s->s_root);
180d904442023d Eric W. Biederman     2016-09-14  456  	s->s_root = NULL;
^1da177e4c3f41 Linus Torvalds        2005-04-16  457  fail:
dee87d47365e47 Eric W. Biederman     2016-09-14  458  	return error;
^1da177e4c3f41 Linus Torvalds        2005-04-16  459  }
^1da177e4c3f41 Linus Torvalds        2005-04-16  460  
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  461  /*
cf7abe7ded8f2c Eric Sandeen          2024-10-25  462   * devpts_get_tree()
289f00e225a6f6 Sukadev Bhattiprolu   2009-03-07  463   *
eedf265aa003b4 Eric W. Biederman     2016-06-02  464   *     Mount a new (private) instance of devpts.  PTYs created in this
eedf265aa003b4 Eric W. Biederman     2016-06-02  465   *     instance are independent of the PTYs in other devpts instances.
d4076ac55bf875 Sukadev Bhattiprolu   2009-01-02  466   */
cf7abe7ded8f2c Eric Sandeen          2024-10-25  467  static int devpts_get_tree(struct fs_context *fc)
^1da177e4c3f41 Linus Torvalds        2005-04-16  468  {
cf7abe7ded8f2c Eric Sandeen          2024-10-25  469  	return get_tree_nodev(fc, devpts_fill_super);
2a1b2dc0c83bbf Sukadev Bhattiprolu   2009-01-02  470  }
482984f06df54d Sukadev Bhattiprolu   2009-03-07  471  
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  472  static void devpts_kill_sb(struct super_block *sb)
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  473  {
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  474  	struct pts_fs_info *fsi = DEVPTS_SB(sb);
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  475  
40b320e1c75735 Eric W. Biederman     2016-09-14  476  	if (fsi)
66da0e1f903414 Ilija Hadzic          2013-11-12  477  		ida_destroy(&fsi->allocated_ptys);
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  478  	kfree(fsi);
1f8f1e296583f9 Sukadev Bhattiprolu   2009-01-02  479  	kill_litter_super(sb);
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  480  }
e76b7c01e598d2 Sukadev Bhattiprolu   2009-01-02  481  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  482  static void devpts_free_fc(struct fs_context *fc)
cf7abe7ded8f2c Eric Sandeen          2024-10-25  483  {
cf7abe7ded8f2c Eric Sandeen          2024-10-25  484  	struct pts_fs_info *fsi = fc->s_fs_info;
cf7abe7ded8f2c Eric Sandeen          2024-10-25  485  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  486  	kfree(fsi);
cf7abe7ded8f2c Eric Sandeen          2024-10-25  487  }
cf7abe7ded8f2c Eric Sandeen          2024-10-25  488  
cf7abe7ded8f2c Eric Sandeen          2024-10-25  489  static const struct fs_context_operations devpts_context_ops = {
cf7abe7ded8f2c Eric Sandeen          2024-10-25  490  	.parse_param	= devpts_parse_param,
cf7abe7ded8f2c Eric Sandeen          2024-10-25  491  	.get_tree	= devpts_get_tree,
cf7abe7ded8f2c Eric Sandeen          2024-10-25 @492  	.reconfigure	= devpts_reconfigure,
cf7abe7ded8f2c Eric Sandeen          2024-10-25  493  	.free		= devpts_free_fc,
cf7abe7ded8f2c Eric Sandeen          2024-10-25  494  };
cf7abe7ded8f2c Eric Sandeen          2024-10-25  495  

:::::: The code at line 354 was first introduced by commit
:::::: 2a1b2dc0c83bbfc24d72cafd5e69810a149b44e4 Enable multiple instances of devpts

:::::: TO: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-10-26 17:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-26 17:56 [sandeen:mount-api 7/7] fs/devpts/inode.c:354:8: error: call to undeclared function 'parse_mount_options'; ISO C99 and later do not support implicit function declarations kernel test robot

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.