cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

namei.c (895B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * QNX6 file system, Linux implementation.
      4 *
      5 * Version : 1.0.0
      6 *
      7 * History :
      8 *
      9 * 01-02-2012 by Kai Bankett (chaosman@ontika.net) : first release.
     10 * 16-02-2012 pagemap extension by Al Viro
     11 *
     12 */
     13
     14#include "qnx6.h"
     15
     16struct dentry *qnx6_lookup(struct inode *dir, struct dentry *dentry,
     17				unsigned int flags)
     18{
     19	unsigned ino;
     20	struct page *page;
     21	struct inode *foundinode = NULL;
     22	const char *name = dentry->d_name.name;
     23	int len = dentry->d_name.len;
     24
     25	if (len > QNX6_LONG_NAME_MAX)
     26		return ERR_PTR(-ENAMETOOLONG);
     27
     28	ino = qnx6_find_entry(len, dir, name, &page);
     29	if (ino) {
     30		foundinode = qnx6_iget(dir->i_sb, ino);
     31		qnx6_put_page(page);
     32		if (IS_ERR(foundinode))
     33			pr_debug("lookup->iget ->  error %ld\n",
     34				 PTR_ERR(foundinode));
     35	} else {
     36		pr_debug("%s(): not found %s\n", __func__, name);
     37	}
     38	return d_splice_alias(foundinode, dentry);
     39}