Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
fs
qnx6
namei.c
Go to the documentation of this file.
1
/*
2
* QNX6 file system, Linux implementation.
3
*
4
* Version : 1.0.0
5
*
6
* History :
7
*
8
* 01-02-2012 by Kai Bankett (
[email protected]
) : first release.
9
* 16-02-2012 pagemap extension by Al Viro
10
*
11
*/
12
13
#include "
qnx6.h
"
14
15
struct
dentry
*
qnx6_lookup
(
struct
inode
*dir,
struct
dentry
*
dentry
,
16
unsigned
int
flags
)
17
{
18
unsigned
ino
;
19
struct
page
*
page
;
20
struct
inode
*foundinode =
NULL
;
21
const
char
*
name
= dentry->
d_name
.name;
22
int
len
= dentry->
d_name
.len;
23
24
if
(len >
QNX6_LONG_NAME_MAX
)
25
return
ERR_PTR(-
ENAMETOOLONG
);
26
27
ino =
qnx6_find_entry
(len, dir, name, &page);
28
if
(ino) {
29
foundinode =
qnx6_iget
(dir->
i_sb
, ino);
30
qnx6_put_page(page);
31
if
(IS_ERR(foundinode)) {
32
QNX6DEBUG
((
KERN_ERR
"qnx6: lookup->iget -> "
33
" error %ld\n"
, PTR_ERR(foundinode)));
34
return
ERR_CAST(foundinode);
35
}
36
}
else
{
37
QNX6DEBUG
((
KERN_INFO
"qnx6_lookup: not found %s\n"
, name));
38
return
NULL
;
39
}
40
d_add(dentry, foundinode);
41
return
NULL
;
42
}
Generated on Thu Jan 10 2013 14:44:47 for Linux Kernel by
1.8.2