All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [jlayton:amtime 89/89] fs/ntfs3/inode.c:176:49: error: 'struct inode' has no member named 'i_mtime'; did you mean '__i_mtime'?
@ 2023-10-01  4:12 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-10-01  4:12 UTC (permalink / raw
  To: Jeff Layton; +Cc: oe-kbuild-all

Hi Jeff,

FYI, the error/warning was bisected to this commit, please ignore it if it's irrelevant.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux.git amtime
head:   d3f5e7afc35dce37213dc35f1d329f078d689834
commit: d3f5e7afc35dce37213dc35f1d329f078d689834 [89/89] fs: rename inode i_atime and i_mtime fields
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20231001/202310011243.kwNeNxnY-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231001/202310011243.kwNeNxnY-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/202310011243.kwNeNxnY-lkp@intel.com/

All errors (new ones prefixed by >>):

   fs/ntfs3/inode.c: In function 'ntfs_read_mft':
>> fs/ntfs3/inode.c:176:49: error: 'struct inode' has no member named 'i_mtime'; did you mean '__i_mtime'?
     176 |                 nt2kernel(std5->m_time, &inode->i_mtime);
         |                                                 ^~~~~~~
         |                                                 __i_mtime
   fs/ntfs3/inode.c: In function 'ntfs_create_inode':
   fs/ntfs3/inode.c:1666:1: error: version control conflict marker in file
    1666 | <<<<<<< HEAD
         | ^~~~~~~
   fs/ntfs3/inode.c:1669:14: error: 'struct inode' has no member named 'i_mtime'; did you mean '__i_mtime'?
    1669 |         dir->i_mtime = inode_set_ctime_to_ts(dir, ni->i_crtime);
         |              ^~~~~~~
         |              __i_mtime
   fs/ntfs3/inode.c:1670:1: error: version control conflict marker in file
    1670 | =======
         | ^~~~~~~
   fs/ntfs3/inode.c:1674:1: error: version control conflict marker in file
    1674 | >>>>>>> c93949aae9cd (fs: convert core infrastructure to new {a,m}time accessors)
         | ^~~~~~~


vim +176 fs/ntfs3/inode.c

82cae269cfa953 Konstantin Komarov 2021-08-13   19  
82cae269cfa953 Konstantin Komarov 2021-08-13   20  /*
e8b8e97f91b80f Kari Argillander   2021-08-03   21   * ntfs_read_mft - Read record and parses MFT.
82cae269cfa953 Konstantin Komarov 2021-08-13   22   */
82cae269cfa953 Konstantin Komarov 2021-08-13   23  static struct inode *ntfs_read_mft(struct inode *inode,
82cae269cfa953 Konstantin Komarov 2021-08-13   24  				   const struct cpu_str *name,
82cae269cfa953 Konstantin Komarov 2021-08-13   25  				   const struct MFT_REF *ref)
82cae269cfa953 Konstantin Komarov 2021-08-13   26  {
82cae269cfa953 Konstantin Komarov 2021-08-13   27  	int err = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13   28  	struct ntfs_inode *ni = ntfs_i(inode);
82cae269cfa953 Konstantin Komarov 2021-08-13   29  	struct super_block *sb = inode->i_sb;
82cae269cfa953 Konstantin Komarov 2021-08-13   30  	struct ntfs_sb_info *sbi = sb->s_fs_info;
82cae269cfa953 Konstantin Komarov 2021-08-13   31  	mode_t mode = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13   32  	struct ATTR_STD_INFO5 *std5 = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13   33  	struct ATTR_LIST_ENTRY *le;
82cae269cfa953 Konstantin Komarov 2021-08-13   34  	struct ATTRIB *attr;
82cae269cfa953 Konstantin Komarov 2021-08-13   35  	bool is_match = false;
82cae269cfa953 Konstantin Komarov 2021-08-13   36  	bool is_root = false;
82cae269cfa953 Konstantin Komarov 2021-08-13   37  	bool is_dir;
82cae269cfa953 Konstantin Komarov 2021-08-13   38  	unsigned long ino = inode->i_ino;
82cae269cfa953 Konstantin Komarov 2021-08-13   39  	u32 rp_fa = 0, asize, t32;
82cae269cfa953 Konstantin Komarov 2021-08-13   40  	u16 roff, rsize, names = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13   41  	const struct ATTR_FILE_NAME *fname = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13   42  	const struct INDEX_ROOT *root;
82cae269cfa953 Konstantin Komarov 2021-08-13   43  	struct REPARSE_DATA_BUFFER rp; // 0x18 bytes
82cae269cfa953 Konstantin Komarov 2021-08-13   44  	u64 t64;
82cae269cfa953 Konstantin Komarov 2021-08-13   45  	struct MFT_REC *rec;
82cae269cfa953 Konstantin Komarov 2021-08-13   46  	struct runs_tree *run;
25ddea97858e02 Jeff Layton        2023-09-29   47  	struct timespec64 ts;
82cae269cfa953 Konstantin Komarov 2021-08-13   48  
82cae269cfa953 Konstantin Komarov 2021-08-13   49  	inode->i_op = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13   50  	/* Setup 'uid' and 'gid' */
564c97bdfa39c7 Kari Argillander   2021-09-07   51  	inode->i_uid = sbi->options->fs_uid;
564c97bdfa39c7 Kari Argillander   2021-09-07   52  	inode->i_gid = sbi->options->fs_gid;
82cae269cfa953 Konstantin Komarov 2021-08-13   53  
82cae269cfa953 Konstantin Komarov 2021-08-13   54  	err = mi_init(&ni->mi, sbi, ino);
82cae269cfa953 Konstantin Komarov 2021-08-13   55  	if (err)
82cae269cfa953 Konstantin Komarov 2021-08-13   56  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   57  
82cae269cfa953 Konstantin Komarov 2021-08-13   58  	if (!sbi->mft.ni && ino == MFT_REC_MFT && !sb->s_root) {
82cae269cfa953 Konstantin Komarov 2021-08-13   59  		t64 = sbi->mft.lbo >> sbi->cluster_bits;
82cae269cfa953 Konstantin Komarov 2021-08-13   60  		t32 = bytes_to_cluster(sbi, MFT_REC_VOL * sbi->record_size);
82cae269cfa953 Konstantin Komarov 2021-08-13   61  		sbi->mft.ni = ni;
82cae269cfa953 Konstantin Komarov 2021-08-13   62  		init_rwsem(&ni->file.run_lock);
82cae269cfa953 Konstantin Komarov 2021-08-13   63  
82cae269cfa953 Konstantin Komarov 2021-08-13   64  		if (!run_add_entry(&ni->file.run, 0, t64, t32, true)) {
82cae269cfa953 Konstantin Komarov 2021-08-13   65  			err = -ENOMEM;
82cae269cfa953 Konstantin Komarov 2021-08-13   66  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   67  		}
82cae269cfa953 Konstantin Komarov 2021-08-13   68  	}
82cae269cfa953 Konstantin Komarov 2021-08-13   69  
82cae269cfa953 Konstantin Komarov 2021-08-13   70  	err = mi_read(&ni->mi, ino == MFT_REC_MFT);
82cae269cfa953 Konstantin Komarov 2021-08-13   71  
82cae269cfa953 Konstantin Komarov 2021-08-13   72  	if (err)
82cae269cfa953 Konstantin Komarov 2021-08-13   73  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   74  
82cae269cfa953 Konstantin Komarov 2021-08-13   75  	rec = ni->mi.mrec;
82cae269cfa953 Konstantin Komarov 2021-08-13   76  
82cae269cfa953 Konstantin Komarov 2021-08-13   77  	if (sbi->flags & NTFS_FLAGS_LOG_REPLAYING) {
82cae269cfa953 Konstantin Komarov 2021-08-13   78  		;
82cae269cfa953 Konstantin Komarov 2021-08-13   79  	} else if (ref->seq != rec->seq) {
82cae269cfa953 Konstantin Komarov 2021-08-13   80  		err = -EINVAL;
82cae269cfa953 Konstantin Komarov 2021-08-13   81  		ntfs_err(sb, "MFT: r=%lx, expect seq=%x instead of %x!", ino,
82cae269cfa953 Konstantin Komarov 2021-08-13   82  			 le16_to_cpu(ref->seq), le16_to_cpu(rec->seq));
82cae269cfa953 Konstantin Komarov 2021-08-13   83  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   84  	} else if (!is_rec_inuse(rec)) {
0e8235d28f3a0e Konstantin Komarov 2022-10-10   85  		err = -ESTALE;
82cae269cfa953 Konstantin Komarov 2021-08-13   86  		ntfs_err(sb, "Inode r=%x is not in use!", (u32)ino);
82cae269cfa953 Konstantin Komarov 2021-08-13   87  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   88  	}
82cae269cfa953 Konstantin Komarov 2021-08-13   89  
82cae269cfa953 Konstantin Komarov 2021-08-13   90  	if (le32_to_cpu(rec->total) != sbi->record_size) {
d3624466b56dd5 Konstantin Komarov 2021-08-31   91  		/* Bad inode? */
82cae269cfa953 Konstantin Komarov 2021-08-13   92  		err = -EINVAL;
82cae269cfa953 Konstantin Komarov 2021-08-13   93  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13   94  	}
82cae269cfa953 Konstantin Komarov 2021-08-13   95  
0e8235d28f3a0e Konstantin Komarov 2022-10-10   96  	if (!is_rec_base(rec)) {
0e8235d28f3a0e Konstantin Komarov 2022-10-10   97  		err = -EINVAL;
0e8235d28f3a0e Konstantin Komarov 2022-10-10   98  		goto out;
0e8235d28f3a0e Konstantin Komarov 2022-10-10   99  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  100  
e8b8e97f91b80f Kari Argillander   2021-08-03  101  	/* Record should contain $I30 root. */
82cae269cfa953 Konstantin Komarov 2021-08-13  102  	is_dir = rec->flags & RECORD_FLAG_DIR;
82cae269cfa953 Konstantin Komarov 2021-08-13  103  
98bea253aa28ad Edward Lo          2022-11-05  104  	/* MFT_REC_MFT is not a dir */
98bea253aa28ad Edward Lo          2022-11-05  105  	if (is_dir && ino == MFT_REC_MFT) {
98bea253aa28ad Edward Lo          2022-11-05  106  		err = -EINVAL;
98bea253aa28ad Edward Lo          2022-11-05  107  		goto out;
98bea253aa28ad Edward Lo          2022-11-05  108  	}
98bea253aa28ad Edward Lo          2022-11-05  109  
82cae269cfa953 Konstantin Komarov 2021-08-13  110  	inode->i_generation = le16_to_cpu(rec->seq);
82cae269cfa953 Konstantin Komarov 2021-08-13  111  
e8b8e97f91b80f Kari Argillander   2021-08-03  112  	/* Enumerate all struct Attributes MFT. */
82cae269cfa953 Konstantin Komarov 2021-08-13  113  	le = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  114  	attr = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  115  
82cae269cfa953 Konstantin Komarov 2021-08-13  116  	/*
e8b8e97f91b80f Kari Argillander   2021-08-03  117  	 * To reduce tab pressure use goto instead of
82cae269cfa953 Konstantin Komarov 2021-08-13  118  	 * while( (attr = ni_enum_attr_ex(ni, attr, &le, NULL) ))
82cae269cfa953 Konstantin Komarov 2021-08-13  119  	 */
82cae269cfa953 Konstantin Komarov 2021-08-13  120  next_attr:
82cae269cfa953 Konstantin Komarov 2021-08-13  121  	run = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  122  	err = -EINVAL;
82cae269cfa953 Konstantin Komarov 2021-08-13  123  	attr = ni_enum_attr_ex(ni, attr, &le, NULL);
82cae269cfa953 Konstantin Komarov 2021-08-13  124  	if (!attr)
82cae269cfa953 Konstantin Komarov 2021-08-13  125  		goto end_enum;
82cae269cfa953 Konstantin Komarov 2021-08-13  126  
82cae269cfa953 Konstantin Komarov 2021-08-13  127  	if (le && le->vcn) {
e8b8e97f91b80f Kari Argillander   2021-08-03  128  		/* This is non primary attribute segment. Ignore if not MFT. */
82cae269cfa953 Konstantin Komarov 2021-08-13  129  		if (ino != MFT_REC_MFT || attr->type != ATTR_DATA)
82cae269cfa953 Konstantin Komarov 2021-08-13  130  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  131  
82cae269cfa953 Konstantin Komarov 2021-08-13  132  		run = &ni->file.run;
82cae269cfa953 Konstantin Komarov 2021-08-13  133  		asize = le32_to_cpu(attr->size);
82cae269cfa953 Konstantin Komarov 2021-08-13  134  		goto attr_unpack_run;
82cae269cfa953 Konstantin Komarov 2021-08-13  135  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  136  
82cae269cfa953 Konstantin Komarov 2021-08-13  137  	roff = attr->non_res ? 0 : le16_to_cpu(attr->res.data_off);
82cae269cfa953 Konstantin Komarov 2021-08-13  138  	rsize = attr->non_res ? 0 : le32_to_cpu(attr->res.data_size);
82cae269cfa953 Konstantin Komarov 2021-08-13  139  	asize = le32_to_cpu(attr->size);
82cae269cfa953 Konstantin Komarov 2021-08-13  140  
0addfb1c2281b5 Konstantin Komarov 2022-12-29  141  	/*
0addfb1c2281b5 Konstantin Komarov 2022-12-29  142  	 * Really this check was done in 'ni_enum_attr_ex' -> ... 'mi_enum_attr'.
0addfb1c2281b5 Konstantin Komarov 2022-12-29  143  	 * There not critical to check this case again
0addfb1c2281b5 Konstantin Komarov 2022-12-29  144  	 */
0addfb1c2281b5 Konstantin Komarov 2022-12-29  145  	if (attr->name_len &&
0addfb1c2281b5 Konstantin Komarov 2022-12-29  146  	    sizeof(short) * attr->name_len + le16_to_cpu(attr->name_off) >
0addfb1c2281b5 Konstantin Komarov 2022-12-29  147  		    asize)
4f1dc7d9756e66 Edward Lo          2022-09-09  148  		goto out;
4f1dc7d9756e66 Edward Lo          2022-09-09  149  
019d22eb0eb707 Abdun Nihaal       2022-10-04  150  	if (attr->non_res) {
019d22eb0eb707 Abdun Nihaal       2022-10-04  151  		t64 = le64_to_cpu(attr->nres.alloc_size);
019d22eb0eb707 Abdun Nihaal       2022-10-04  152  		if (le64_to_cpu(attr->nres.data_size) > t64 ||
019d22eb0eb707 Abdun Nihaal       2022-10-04  153  		    le64_to_cpu(attr->nres.valid_size) > t64)
019d22eb0eb707 Abdun Nihaal       2022-10-04  154  			goto out;
019d22eb0eb707 Abdun Nihaal       2022-10-04  155  	}
019d22eb0eb707 Abdun Nihaal       2022-10-04  156  
82cae269cfa953 Konstantin Komarov 2021-08-13  157  	switch (attr->type) {
82cae269cfa953 Konstantin Komarov 2021-08-13  158  	case ATTR_STD:
82cae269cfa953 Konstantin Komarov 2021-08-13  159  		if (attr->non_res ||
82cae269cfa953 Konstantin Komarov 2021-08-13  160  		    asize < sizeof(struct ATTR_STD_INFO) + roff ||
82cae269cfa953 Konstantin Komarov 2021-08-13  161  		    rsize < sizeof(struct ATTR_STD_INFO))
82cae269cfa953 Konstantin Komarov 2021-08-13  162  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  163  
82cae269cfa953 Konstantin Komarov 2021-08-13  164  		if (std5)
82cae269cfa953 Konstantin Komarov 2021-08-13  165  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  166  
82cae269cfa953 Konstantin Komarov 2021-08-13  167  		std5 = Add2Ptr(attr, roff);
82cae269cfa953 Konstantin Komarov 2021-08-13  168  
82cae269cfa953 Konstantin Komarov 2021-08-13  169  #ifdef STATX_BTIME
82cae269cfa953 Konstantin Komarov 2021-08-13  170  		nt2kernel(std5->cr_time, &ni->i_crtime);
82cae269cfa953 Konstantin Komarov 2021-08-13  171  #endif
25ddea97858e02 Jeff Layton        2023-09-29  172  		nt2kernel(std5->a_time, &ts);
25ddea97858e02 Jeff Layton        2023-09-29  173  		inode_set_atime_to_ts(inode, ts);
25ddea97858e02 Jeff Layton        2023-09-29  174  		nt2kernel(std5->c_time, &ts);
25ddea97858e02 Jeff Layton        2023-09-29  175  		inode_set_ctime_to_ts(inode, ts);
82cae269cfa953 Konstantin Komarov 2021-08-13 @176  		nt2kernel(std5->m_time, &inode->i_mtime);
25ddea97858e02 Jeff Layton        2023-09-29  177  		inode_set_mtime_to_ts(inode, ts);
82cae269cfa953 Konstantin Komarov 2021-08-13  178  
82cae269cfa953 Konstantin Komarov 2021-08-13  179  		ni->std_fa = std5->fa;
82cae269cfa953 Konstantin Komarov 2021-08-13  180  
82cae269cfa953 Konstantin Komarov 2021-08-13  181  		if (asize >= sizeof(struct ATTR_STD_INFO5) + roff &&
82cae269cfa953 Konstantin Komarov 2021-08-13  182  		    rsize >= sizeof(struct ATTR_STD_INFO5))
82cae269cfa953 Konstantin Komarov 2021-08-13  183  			ni->std_security_id = std5->security_id;
82cae269cfa953 Konstantin Komarov 2021-08-13  184  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  185  
82cae269cfa953 Konstantin Komarov 2021-08-13  186  	case ATTR_LIST:
82cae269cfa953 Konstantin Komarov 2021-08-13  187  		if (attr->name_len || le || ino == MFT_REC_LOG)
82cae269cfa953 Konstantin Komarov 2021-08-13  188  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  189  
82cae269cfa953 Konstantin Komarov 2021-08-13  190  		err = ntfs_load_attr_list(ni, attr);
82cae269cfa953 Konstantin Komarov 2021-08-13  191  		if (err)
82cae269cfa953 Konstantin Komarov 2021-08-13  192  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  193  
82cae269cfa953 Konstantin Komarov 2021-08-13  194  		le = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  195  		attr = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  196  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  197  
82cae269cfa953 Konstantin Komarov 2021-08-13  198  	case ATTR_NAME:
82cae269cfa953 Konstantin Komarov 2021-08-13  199  		if (attr->non_res || asize < SIZEOF_ATTRIBUTE_FILENAME + roff ||
82cae269cfa953 Konstantin Komarov 2021-08-13  200  		    rsize < SIZEOF_ATTRIBUTE_FILENAME)
82cae269cfa953 Konstantin Komarov 2021-08-13  201  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  202  
82cae269cfa953 Konstantin Komarov 2021-08-13  203  		fname = Add2Ptr(attr, roff);
82cae269cfa953 Konstantin Komarov 2021-08-13  204  		if (fname->type == FILE_NAME_DOS)
82cae269cfa953 Konstantin Komarov 2021-08-13  205  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  206  
82cae269cfa953 Konstantin Komarov 2021-08-13  207  		names += 1;
82cae269cfa953 Konstantin Komarov 2021-08-13  208  		if (name && name->len == fname->name_len &&
82cae269cfa953 Konstantin Komarov 2021-08-13  209  		    !ntfs_cmp_names_cpu(name, (struct le_str *)&fname->name_len,
82cae269cfa953 Konstantin Komarov 2021-08-13  210  					NULL, false))
82cae269cfa953 Konstantin Komarov 2021-08-13  211  			is_match = true;
82cae269cfa953 Konstantin Komarov 2021-08-13  212  
82cae269cfa953 Konstantin Komarov 2021-08-13  213  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  214  
82cae269cfa953 Konstantin Komarov 2021-08-13  215  	case ATTR_DATA:
82cae269cfa953 Konstantin Komarov 2021-08-13  216  		if (is_dir) {
e8b8e97f91b80f Kari Argillander   2021-08-03  217  			/* Ignore data attribute in dir record. */
82cae269cfa953 Konstantin Komarov 2021-08-13  218  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  219  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  220  
82cae269cfa953 Konstantin Komarov 2021-08-13  221  		if (ino == MFT_REC_BADCLUST && !attr->non_res)
82cae269cfa953 Konstantin Komarov 2021-08-13  222  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  223  
82cae269cfa953 Konstantin Komarov 2021-08-13  224  		if (attr->name_len &&
82cae269cfa953 Konstantin Komarov 2021-08-13  225  		    ((ino != MFT_REC_BADCLUST || !attr->non_res ||
82cae269cfa953 Konstantin Komarov 2021-08-13  226  		      attr->name_len != ARRAY_SIZE(BAD_NAME) ||
82cae269cfa953 Konstantin Komarov 2021-08-13  227  		      memcmp(attr_name(attr), BAD_NAME, sizeof(BAD_NAME))) &&
82cae269cfa953 Konstantin Komarov 2021-08-13  228  		     (ino != MFT_REC_SECURE || !attr->non_res ||
82cae269cfa953 Konstantin Komarov 2021-08-13  229  		      attr->name_len != ARRAY_SIZE(SDS_NAME) ||
82cae269cfa953 Konstantin Komarov 2021-08-13  230  		      memcmp(attr_name(attr), SDS_NAME, sizeof(SDS_NAME))))) {
e8b8e97f91b80f Kari Argillander   2021-08-03  231  			/* File contains stream attribute. Ignore it. */
82cae269cfa953 Konstantin Komarov 2021-08-13  232  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  233  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  234  
82cae269cfa953 Konstantin Komarov 2021-08-13  235  		if (is_attr_sparsed(attr))
82cae269cfa953 Konstantin Komarov 2021-08-13  236  			ni->std_fa |= FILE_ATTRIBUTE_SPARSE_FILE;
82cae269cfa953 Konstantin Komarov 2021-08-13  237  		else
82cae269cfa953 Konstantin Komarov 2021-08-13  238  			ni->std_fa &= ~FILE_ATTRIBUTE_SPARSE_FILE;
82cae269cfa953 Konstantin Komarov 2021-08-13  239  
82cae269cfa953 Konstantin Komarov 2021-08-13  240  		if (is_attr_compressed(attr))
82cae269cfa953 Konstantin Komarov 2021-08-13  241  			ni->std_fa |= FILE_ATTRIBUTE_COMPRESSED;
82cae269cfa953 Konstantin Komarov 2021-08-13  242  		else
82cae269cfa953 Konstantin Komarov 2021-08-13  243  			ni->std_fa &= ~FILE_ATTRIBUTE_COMPRESSED;
82cae269cfa953 Konstantin Komarov 2021-08-13  244  
82cae269cfa953 Konstantin Komarov 2021-08-13  245  		if (is_attr_encrypted(attr))
82cae269cfa953 Konstantin Komarov 2021-08-13  246  			ni->std_fa |= FILE_ATTRIBUTE_ENCRYPTED;
82cae269cfa953 Konstantin Komarov 2021-08-13  247  		else
82cae269cfa953 Konstantin Komarov 2021-08-13  248  			ni->std_fa &= ~FILE_ATTRIBUTE_ENCRYPTED;
82cae269cfa953 Konstantin Komarov 2021-08-13  249  
82cae269cfa953 Konstantin Komarov 2021-08-13  250  		if (!attr->non_res) {
82cae269cfa953 Konstantin Komarov 2021-08-13  251  			ni->i_valid = inode->i_size = rsize;
82cae269cfa953 Konstantin Komarov 2021-08-13  252  			inode_set_bytes(inode, rsize);
82cae269cfa953 Konstantin Komarov 2021-08-13  253  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  254  
564c97bdfa39c7 Kari Argillander   2021-09-07  255  		mode = S_IFREG | (0777 & sbi->options->fs_fmask_inv);
82cae269cfa953 Konstantin Komarov 2021-08-13  256  
82cae269cfa953 Konstantin Komarov 2021-08-13  257  		if (!attr->non_res) {
82cae269cfa953 Konstantin Komarov 2021-08-13  258  			ni->ni_flags |= NI_FLAG_RESIDENT;
82cae269cfa953 Konstantin Komarov 2021-08-13  259  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  260  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  261  
82cae269cfa953 Konstantin Komarov 2021-08-13  262  		inode_set_bytes(inode, attr_ondisk_size(attr));
82cae269cfa953 Konstantin Komarov 2021-08-13  263  
82cae269cfa953 Konstantin Komarov 2021-08-13  264  		ni->i_valid = le64_to_cpu(attr->nres.valid_size);
82cae269cfa953 Konstantin Komarov 2021-08-13  265  		inode->i_size = le64_to_cpu(attr->nres.data_size);
82cae269cfa953 Konstantin Komarov 2021-08-13  266  		if (!attr->nres.alloc_size)
82cae269cfa953 Konstantin Komarov 2021-08-13  267  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  268  
96de65a9413e04 Konstantin Komarov 2023-01-17  269  		run = ino == MFT_REC_BITMAP ? &sbi->used.bitmap.run :
96de65a9413e04 Konstantin Komarov 2023-01-17  270  					      &ni->file.run;
82cae269cfa953 Konstantin Komarov 2021-08-13  271  		break;
82cae269cfa953 Konstantin Komarov 2021-08-13  272  
82cae269cfa953 Konstantin Komarov 2021-08-13  273  	case ATTR_ROOT:
82cae269cfa953 Konstantin Komarov 2021-08-13  274  		if (attr->non_res)
82cae269cfa953 Konstantin Komarov 2021-08-13  275  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  276  
82cae269cfa953 Konstantin Komarov 2021-08-13  277  		root = Add2Ptr(attr, roff);
82cae269cfa953 Konstantin Komarov 2021-08-13  278  
82cae269cfa953 Konstantin Komarov 2021-08-13  279  		if (attr->name_len != ARRAY_SIZE(I30_NAME) ||
82cae269cfa953 Konstantin Komarov 2021-08-13  280  		    memcmp(attr_name(attr), I30_NAME, sizeof(I30_NAME)))
82cae269cfa953 Konstantin Komarov 2021-08-13  281  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  282  
82cae269cfa953 Konstantin Komarov 2021-08-13  283  		if (root->type != ATTR_NAME ||
82cae269cfa953 Konstantin Komarov 2021-08-13  284  		    root->rule != NTFS_COLLATION_TYPE_FILENAME)
82cae269cfa953 Konstantin Komarov 2021-08-13  285  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  286  
82cae269cfa953 Konstantin Komarov 2021-08-13  287  		if (!is_dir)
82cae269cfa953 Konstantin Komarov 2021-08-13  288  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  289  
bfa434c60157c9 Chen Zhongjin      2022-11-22  290  		is_root = true;
82cae269cfa953 Konstantin Komarov 2021-08-13  291  		ni->ni_flags |= NI_FLAG_DIR;
82cae269cfa953 Konstantin Komarov 2021-08-13  292  
82cae269cfa953 Konstantin Komarov 2021-08-13  293  		err = indx_init(&ni->dir, sbi, attr, INDEX_MUTEX_I30);
82cae269cfa953 Konstantin Komarov 2021-08-13  294  		if (err)
82cae269cfa953 Konstantin Komarov 2021-08-13  295  			goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  296  
96de65a9413e04 Konstantin Komarov 2023-01-17  297  		mode = sb->s_root ?
96de65a9413e04 Konstantin Komarov 2023-01-17  298  			       (S_IFDIR | (0777 & sbi->options->fs_dmask_inv)) :
96de65a9413e04 Konstantin Komarov 2023-01-17  299  			       (S_IFDIR | 0777);
82cae269cfa953 Konstantin Komarov 2021-08-13  300  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  301  
82cae269cfa953 Konstantin Komarov 2021-08-13  302  	case ATTR_ALLOC:
82cae269cfa953 Konstantin Komarov 2021-08-13  303  		if (!is_root || attr->name_len != ARRAY_SIZE(I30_NAME) ||
82cae269cfa953 Konstantin Komarov 2021-08-13  304  		    memcmp(attr_name(attr), I30_NAME, sizeof(I30_NAME)))
82cae269cfa953 Konstantin Komarov 2021-08-13  305  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  306  
82cae269cfa953 Konstantin Komarov 2021-08-13  307  		inode->i_size = le64_to_cpu(attr->nres.data_size);
82cae269cfa953 Konstantin Komarov 2021-08-13  308  		ni->i_valid = le64_to_cpu(attr->nres.valid_size);
82cae269cfa953 Konstantin Komarov 2021-08-13  309  		inode_set_bytes(inode, le64_to_cpu(attr->nres.alloc_size));
82cae269cfa953 Konstantin Komarov 2021-08-13  310  
82cae269cfa953 Konstantin Komarov 2021-08-13  311  		run = &ni->dir.alloc_run;
82cae269cfa953 Konstantin Komarov 2021-08-13  312  		break;
82cae269cfa953 Konstantin Komarov 2021-08-13  313  
82cae269cfa953 Konstantin Komarov 2021-08-13  314  	case ATTR_BITMAP:
82cae269cfa953 Konstantin Komarov 2021-08-13  315  		if (ino == MFT_REC_MFT) {
82cae269cfa953 Konstantin Komarov 2021-08-13  316  			if (!attr->non_res)
82cae269cfa953 Konstantin Komarov 2021-08-13  317  				goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  318  #ifndef CONFIG_NTFS3_64BIT_CLUSTER
82cae269cfa953 Konstantin Komarov 2021-08-13  319  			/* 0x20000000 = 2^32 / 8 */
82cae269cfa953 Konstantin Komarov 2021-08-13  320  			if (le64_to_cpu(attr->nres.alloc_size) >= 0x20000000)
82cae269cfa953 Konstantin Komarov 2021-08-13  321  				goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  322  #endif
82cae269cfa953 Konstantin Komarov 2021-08-13  323  			run = &sbi->mft.bitmap.run;
82cae269cfa953 Konstantin Komarov 2021-08-13  324  			break;
82cae269cfa953 Konstantin Komarov 2021-08-13  325  		} else if (is_dir && attr->name_len == ARRAY_SIZE(I30_NAME) &&
82cae269cfa953 Konstantin Komarov 2021-08-13  326  			   !memcmp(attr_name(attr), I30_NAME,
82cae269cfa953 Konstantin Komarov 2021-08-13  327  				   sizeof(I30_NAME)) &&
82cae269cfa953 Konstantin Komarov 2021-08-13  328  			   attr->non_res) {
82cae269cfa953 Konstantin Komarov 2021-08-13  329  			run = &ni->dir.bitmap_run;
82cae269cfa953 Konstantin Komarov 2021-08-13  330  			break;
82cae269cfa953 Konstantin Komarov 2021-08-13  331  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  332  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  333  
82cae269cfa953 Konstantin Komarov 2021-08-13  334  	case ATTR_REPARSE:
82cae269cfa953 Konstantin Komarov 2021-08-13  335  		if (attr->name_len)
82cae269cfa953 Konstantin Komarov 2021-08-13  336  			goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  337  
82cae269cfa953 Konstantin Komarov 2021-08-13  338  		rp_fa = ni_parse_reparse(ni, attr, &rp);
82cae269cfa953 Konstantin Komarov 2021-08-13  339  		switch (rp_fa) {
82cae269cfa953 Konstantin Komarov 2021-08-13  340  		case REPARSE_LINK:
22b05f1ac0332c Konstantin Komarov 2021-10-05  341  			/*
22b05f1ac0332c Konstantin Komarov 2021-10-05  342  			 * Normal symlink.
22b05f1ac0332c Konstantin Komarov 2021-10-05  343  			 * Assume one unicode symbol == one utf8.
22b05f1ac0332c Konstantin Komarov 2021-10-05  344  			 */
22b05f1ac0332c Konstantin Komarov 2021-10-05  345  			inode->i_size = le16_to_cpu(rp.SymbolicLinkReparseBuffer
22b05f1ac0332c Konstantin Komarov 2021-10-05  346  							    .PrintNameLength) /
22b05f1ac0332c Konstantin Komarov 2021-10-05  347  					sizeof(u16);
82cae269cfa953 Konstantin Komarov 2021-08-13  348  
82cae269cfa953 Konstantin Komarov 2021-08-13  349  			ni->i_valid = inode->i_size;
82cae269cfa953 Konstantin Komarov 2021-08-13  350  
e8b8e97f91b80f Kari Argillander   2021-08-03  351  			/* Clear directory bit. */
82cae269cfa953 Konstantin Komarov 2021-08-13  352  			if (ni->ni_flags & NI_FLAG_DIR) {
82cae269cfa953 Konstantin Komarov 2021-08-13  353  				indx_clear(&ni->dir);
82cae269cfa953 Konstantin Komarov 2021-08-13  354  				memset(&ni->dir, 0, sizeof(ni->dir));
82cae269cfa953 Konstantin Komarov 2021-08-13  355  				ni->ni_flags &= ~NI_FLAG_DIR;
82cae269cfa953 Konstantin Komarov 2021-08-13  356  			} else {
82cae269cfa953 Konstantin Komarov 2021-08-13  357  				run_close(&ni->file.run);
82cae269cfa953 Konstantin Komarov 2021-08-13  358  			}
82cae269cfa953 Konstantin Komarov 2021-08-13  359  			mode = S_IFLNK | 0777;
82cae269cfa953 Konstantin Komarov 2021-08-13  360  			is_dir = false;
82cae269cfa953 Konstantin Komarov 2021-08-13  361  			if (attr->non_res) {
82cae269cfa953 Konstantin Komarov 2021-08-13  362  				run = &ni->file.run;
e8b8e97f91b80f Kari Argillander   2021-08-03  363  				goto attr_unpack_run; // Double break.
82cae269cfa953 Konstantin Komarov 2021-08-13  364  			}
82cae269cfa953 Konstantin Komarov 2021-08-13  365  			break;
82cae269cfa953 Konstantin Komarov 2021-08-13  366  
82cae269cfa953 Konstantin Komarov 2021-08-13  367  		case REPARSE_COMPRESSED:
82cae269cfa953 Konstantin Komarov 2021-08-13  368  			break;
82cae269cfa953 Konstantin Komarov 2021-08-13  369  
82cae269cfa953 Konstantin Komarov 2021-08-13  370  		case REPARSE_DEDUPLICATED:
82cae269cfa953 Konstantin Komarov 2021-08-13  371  			break;
82cae269cfa953 Konstantin Komarov 2021-08-13  372  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  373  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  374  
82cae269cfa953 Konstantin Komarov 2021-08-13  375  	case ATTR_EA_INFO:
82cae269cfa953 Konstantin Komarov 2021-08-13  376  		if (!attr->name_len &&
82cae269cfa953 Konstantin Komarov 2021-08-13  377  		    resident_data_ex(attr, sizeof(struct EA_INFO))) {
82cae269cfa953 Konstantin Komarov 2021-08-13  378  			ni->ni_flags |= NI_FLAG_EA;
82cae269cfa953 Konstantin Komarov 2021-08-13  379  			/*
82cae269cfa953 Konstantin Komarov 2021-08-13  380  			 * ntfs_get_wsl_perm updates inode->i_uid, inode->i_gid, inode->i_mode
82cae269cfa953 Konstantin Komarov 2021-08-13  381  			 */
82cae269cfa953 Konstantin Komarov 2021-08-13  382  			inode->i_mode = mode;
82cae269cfa953 Konstantin Komarov 2021-08-13  383  			ntfs_get_wsl_perm(inode);
82cae269cfa953 Konstantin Komarov 2021-08-13  384  			mode = inode->i_mode;
82cae269cfa953 Konstantin Komarov 2021-08-13  385  		}
82cae269cfa953 Konstantin Komarov 2021-08-13  386  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  387  
82cae269cfa953 Konstantin Komarov 2021-08-13  388  	default:
82cae269cfa953 Konstantin Komarov 2021-08-13  389  		goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  390  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  391  
82cae269cfa953 Konstantin Komarov 2021-08-13  392  attr_unpack_run:
82cae269cfa953 Konstantin Komarov 2021-08-13  393  	roff = le16_to_cpu(attr->nres.run_off);
82cae269cfa953 Konstantin Komarov 2021-08-13  394  
6db620863f8528 Edward Lo          2022-08-06  395  	if (roff > asize) {
6db620863f8528 Edward Lo          2022-08-06  396  		err = -EINVAL;
6db620863f8528 Edward Lo          2022-08-06  397  		goto out;
6db620863f8528 Edward Lo          2022-08-06  398  	}
6db620863f8528 Edward Lo          2022-08-06  399  
82cae269cfa953 Konstantin Komarov 2021-08-13  400  	t64 = le64_to_cpu(attr->nres.svcn);
887bfc546097fb Hawkins Jiawei     2022-09-23  401  
82cae269cfa953 Konstantin Komarov 2021-08-13  402  	err = run_unpack_ex(run, sbi, ino, t64, le64_to_cpu(attr->nres.evcn),
82cae269cfa953 Konstantin Komarov 2021-08-13  403  			    t64, Add2Ptr(attr, roff), asize - roff);
82cae269cfa953 Konstantin Komarov 2021-08-13  404  	if (err < 0)
82cae269cfa953 Konstantin Komarov 2021-08-13  405  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  406  	err = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13  407  	goto next_attr;
82cae269cfa953 Konstantin Komarov 2021-08-13  408  
82cae269cfa953 Konstantin Komarov 2021-08-13  409  end_enum:
82cae269cfa953 Konstantin Komarov 2021-08-13  410  
82cae269cfa953 Konstantin Komarov 2021-08-13  411  	if (!std5)
82cae269cfa953 Konstantin Komarov 2021-08-13  412  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  413  
82cae269cfa953 Konstantin Komarov 2021-08-13  414  	if (!is_match && name) {
e8b8e97f91b80f Kari Argillander   2021-08-03  415  		/* Reuse rec as buffer for ascii name. */
82cae269cfa953 Konstantin Komarov 2021-08-13  416  		err = -ENOENT;
82cae269cfa953 Konstantin Komarov 2021-08-13  417  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  418  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  419  
82cae269cfa953 Konstantin Komarov 2021-08-13  420  	if (std5->fa & FILE_ATTRIBUTE_READONLY)
82cae269cfa953 Konstantin Komarov 2021-08-13  421  		mode &= ~0222;
82cae269cfa953 Konstantin Komarov 2021-08-13  422  
82cae269cfa953 Konstantin Komarov 2021-08-13  423  	if (!names) {
82cae269cfa953 Konstantin Komarov 2021-08-13  424  		err = -EINVAL;
82cae269cfa953 Konstantin Komarov 2021-08-13  425  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  426  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  427  
78ab59fee07f22 Konstantin Komarov 2021-08-31  428  	if (names != le16_to_cpu(rec->hard_links)) {
78ab59fee07f22 Konstantin Komarov 2021-08-31  429  		/* Correct minor error on the fly. Do not mark inode as dirty. */
78ab59fee07f22 Konstantin Komarov 2021-08-31  430  		rec->hard_links = cpu_to_le16(names);
78ab59fee07f22 Konstantin Komarov 2021-08-31  431  		ni->mi.dirty = true;
78ab59fee07f22 Konstantin Komarov 2021-08-31  432  	}
78ab59fee07f22 Konstantin Komarov 2021-08-31  433  
82cae269cfa953 Konstantin Komarov 2021-08-13  434  	set_nlink(inode, names);
82cae269cfa953 Konstantin Komarov 2021-08-13  435  
82cae269cfa953 Konstantin Komarov 2021-08-13  436  	if (S_ISDIR(mode)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  437  		ni->std_fa |= FILE_ATTRIBUTE_DIRECTORY;
82cae269cfa953 Konstantin Komarov 2021-08-13  438  
82cae269cfa953 Konstantin Komarov 2021-08-13  439  		/*
e8b8e97f91b80f Kari Argillander   2021-08-03  440  		 * Dot and dot-dot should be included in count but was not
82cae269cfa953 Konstantin Komarov 2021-08-13  441  		 * included in enumeration.
e8b8e97f91b80f Kari Argillander   2021-08-03  442  		 * Usually a hard links to directories are disabled.
82cae269cfa953 Konstantin Komarov 2021-08-13  443  		 */
82cae269cfa953 Konstantin Komarov 2021-08-13  444  		inode->i_op = &ntfs_dir_inode_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  445  		inode->i_fop = &ntfs_dir_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  446  		ni->i_valid = 0;
82cae269cfa953 Konstantin Komarov 2021-08-13  447  	} else if (S_ISLNK(mode)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  448  		ni->std_fa &= ~FILE_ATTRIBUTE_DIRECTORY;
82cae269cfa953 Konstantin Komarov 2021-08-13  449  		inode->i_op = &ntfs_link_inode_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  450  		inode->i_fop = NULL;
22b05f1ac0332c Konstantin Komarov 2021-10-05  451  		inode_nohighmem(inode);
82cae269cfa953 Konstantin Komarov 2021-08-13  452  	} else if (S_ISREG(mode)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  453  		ni->std_fa &= ~FILE_ATTRIBUTE_DIRECTORY;
82cae269cfa953 Konstantin Komarov 2021-08-13  454  		inode->i_op = &ntfs_file_inode_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  455  		inode->i_fop = &ntfs_file_operations;
96de65a9413e04 Konstantin Komarov 2023-01-17  456  		inode->i_mapping->a_ops = is_compressed(ni) ? &ntfs_aops_cmpr :
96de65a9413e04 Konstantin Komarov 2023-01-17  457  							      &ntfs_aops;
82cae269cfa953 Konstantin Komarov 2021-08-13  458  		if (ino != MFT_REC_MFT)
82cae269cfa953 Konstantin Komarov 2021-08-13  459  			init_rwsem(&ni->file.run_lock);
82cae269cfa953 Konstantin Komarov 2021-08-13  460  	} else if (S_ISCHR(mode) || S_ISBLK(mode) || S_ISFIFO(mode) ||
82cae269cfa953 Konstantin Komarov 2021-08-13  461  		   S_ISSOCK(mode)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  462  		inode->i_op = &ntfs_special_inode_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  463  		init_special_inode(inode, mode, inode->i_rdev);
82cae269cfa953 Konstantin Komarov 2021-08-13  464  	} else if (fname && fname->home.low == cpu_to_le32(MFT_REC_EXTEND) &&
82cae269cfa953 Konstantin Komarov 2021-08-13  465  		   fname->home.seq == cpu_to_le16(MFT_REC_EXTEND)) {
e8b8e97f91b80f Kari Argillander   2021-08-03  466  		/* Records in $Extend are not a files or general directories. */
37a530bfe56ca9 Konstantin Komarov 2022-05-26  467  		inode->i_op = &ntfs_file_inode_operations;
82cae269cfa953 Konstantin Komarov 2021-08-13  468  	} else {
82cae269cfa953 Konstantin Komarov 2021-08-13  469  		err = -EINVAL;
82cae269cfa953 Konstantin Komarov 2021-08-13  470  		goto out;
82cae269cfa953 Konstantin Komarov 2021-08-13  471  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  472  
564c97bdfa39c7 Kari Argillander   2021-09-07  473  	if ((sbi->options->sys_immutable &&
82cae269cfa953 Konstantin Komarov 2021-08-13  474  	     (std5->fa & FILE_ATTRIBUTE_SYSTEM)) &&
82cae269cfa953 Konstantin Komarov 2021-08-13  475  	    !S_ISFIFO(mode) && !S_ISSOCK(mode) && !S_ISLNK(mode)) {
82cae269cfa953 Konstantin Komarov 2021-08-13  476  		inode->i_flags |= S_IMMUTABLE;
82cae269cfa953 Konstantin Komarov 2021-08-13  477  	} else {
82cae269cfa953 Konstantin Komarov 2021-08-13  478  		inode->i_flags &= ~S_IMMUTABLE;
82cae269cfa953 Konstantin Komarov 2021-08-13  479  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  480  
82cae269cfa953 Konstantin Komarov 2021-08-13  481  	inode->i_mode = mode;
82cae269cfa953 Konstantin Komarov 2021-08-13  482  	if (!(ni->ni_flags & NI_FLAG_EA)) {
e8b8e97f91b80f Kari Argillander   2021-08-03  483  		/* If no xattr then no security (stored in xattr). */
82cae269cfa953 Konstantin Komarov 2021-08-13  484  		inode->i_flags |= S_NOSEC;
82cae269cfa953 Konstantin Komarov 2021-08-13  485  	}
82cae269cfa953 Konstantin Komarov 2021-08-13  486  
82cae269cfa953 Konstantin Komarov 2021-08-13  487  	if (ino == MFT_REC_MFT && !sb->s_root)
82cae269cfa953 Konstantin Komarov 2021-08-13  488  		sbi->mft.ni = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  489  
82cae269cfa953 Konstantin Komarov 2021-08-13  490  	unlock_new_inode(inode);
82cae269cfa953 Konstantin Komarov 2021-08-13  491  
82cae269cfa953 Konstantin Komarov 2021-08-13  492  	return inode;
82cae269cfa953 Konstantin Komarov 2021-08-13  493  
82cae269cfa953 Konstantin Komarov 2021-08-13  494  out:
82cae269cfa953 Konstantin Komarov 2021-08-13  495  	if (ino == MFT_REC_MFT && !sb->s_root)
82cae269cfa953 Konstantin Komarov 2021-08-13  496  		sbi->mft.ni = NULL;
82cae269cfa953 Konstantin Komarov 2021-08-13  497  
82cae269cfa953 Konstantin Komarov 2021-08-13  498  	iget_failed(inode);
82cae269cfa953 Konstantin Komarov 2021-08-13  499  	return ERR_PTR(err);
82cae269cfa953 Konstantin Komarov 2021-08-13  500  }
82cae269cfa953 Konstantin Komarov 2021-08-13  501  

:::::: The code at line 176 was first introduced by commit
:::::: 82cae269cfa953032fbb8980a7d554d60fb00b17 fs/ntfs3: Add initialization of super block

:::::: TO: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
:::::: CC: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>

-- 
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:[~2023-10-01  4:12 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-01  4:12 [jlayton:amtime 89/89] fs/ntfs3/inode.c:176:49: error: 'struct inode' has no member named 'i_mtime'; did you mean '__i_mtime'? 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.