root/fs/qnx6/namei.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. qnx6_lookup

   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 
  16 struct 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 }

/* [<][>][^][v][top][bottom][index][help] */