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