Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
4d359507
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
4d359507
编写于
3月 14, 2014
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
namei.c: move EXPORT_SYMBOL to corresponding definitions
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
0018d8bf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
28 deletion
+27
-28
fs/namei.c
fs/namei.c
+27
-28
未找到文件。
fs/namei.c
浏览文件 @
4d359507
...
...
@@ -358,6 +358,7 @@ int generic_permission(struct inode *inode, int mask)
return
-
EACCES
;
}
EXPORT_SYMBOL
(
generic_permission
);
/*
* We _really_ want to just do "generic_permission()" without
...
...
@@ -455,6 +456,7 @@ int inode_permission(struct inode *inode, int mask)
return
retval
;
return
__inode_permission
(
inode
,
mask
);
}
EXPORT_SYMBOL
(
inode_permission
);
/**
* path_get - get a reference to a path
...
...
@@ -924,6 +926,7 @@ int follow_up(struct path *path)
path
->
mnt
=
&
parent
->
mnt
;
return
1
;
}
EXPORT_SYMBOL
(
follow_up
);
/*
* Perform an automount
...
...
@@ -1085,6 +1088,7 @@ int follow_down_one(struct path *path)
}
return
0
;
}
EXPORT_SYMBOL
(
follow_down_one
);
static
inline
bool
managed_dentry_might_block
(
struct
dentry
*
dentry
)
{
...
...
@@ -1223,6 +1227,7 @@ int follow_down(struct path *path)
}
return
0
;
}
EXPORT_SYMBOL
(
follow_down
);
/*
* Skip to top of mountpoint pile in refwalk mode for follow_dotdot()
...
...
@@ -2025,6 +2030,7 @@ int kern_path(const char *name, unsigned int flags, struct path *path)
*
path
=
nd
.
path
;
return
res
;
}
EXPORT_SYMBOL
(
kern_path
);
/**
* vfs_path_lookup - lookup a file path relative to a dentry-vfsmount pair
...
...
@@ -2049,6 +2055,7 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
*
path
=
nd
.
path
;
return
err
;
}
EXPORT_SYMBOL
(
vfs_path_lookup
);
/*
* Restricted form of lookup. Doesn't follow links, single-component only,
...
...
@@ -2111,6 +2118,7 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len)
return
__lookup_hash
(
&
this
,
base
,
0
);
}
EXPORT_SYMBOL
(
lookup_one_len
);
int
user_path_at_empty
(
int
dfd
,
const
char
__user
*
name
,
unsigned
flags
,
struct
path
*
path
,
int
*
empty
)
...
...
@@ -2135,6 +2143,7 @@ int user_path_at(int dfd, const char __user *name, unsigned flags,
{
return
user_path_at_empty
(
dfd
,
name
,
flags
,
path
,
NULL
);
}
EXPORT_SYMBOL
(
user_path_at
);
/*
* NB: most callers don't do anything directly with the reference to the
...
...
@@ -2477,6 +2486,7 @@ struct dentry *lock_rename(struct dentry *p1, struct dentry *p2)
mutex_lock_nested
(
&
p2
->
d_inode
->
i_mutex
,
I_MUTEX_CHILD
);
return
NULL
;
}
EXPORT_SYMBOL
(
lock_rename
);
void
unlock_rename
(
struct
dentry
*
p1
,
struct
dentry
*
p2
)
{
...
...
@@ -2486,6 +2496,7 @@ void unlock_rename(struct dentry *p1, struct dentry *p2)
mutex_unlock
(
&
p1
->
d_inode
->
i_sb
->
s_vfs_rename_mutex
);
}
}
EXPORT_SYMBOL
(
unlock_rename
);
int
vfs_create
(
struct
inode
*
dir
,
struct
dentry
*
dentry
,
umode_t
mode
,
bool
want_excl
)
...
...
@@ -2506,6 +2517,7 @@ int vfs_create(struct inode *dir, struct dentry *dentry, umode_t mode,
fsnotify_create
(
dir
,
dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_create
);
static
int
may_open
(
struct
path
*
path
,
int
acc_mode
,
int
flag
)
{
...
...
@@ -3376,6 +3388,7 @@ int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
fsnotify_create
(
dir
,
dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_mknod
);
static
int
may_mknod
(
umode_t
mode
)
{
...
...
@@ -3465,6 +3478,7 @@ int vfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
fsnotify_mkdir
(
dir
,
dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_mkdir
);
SYSCALL_DEFINE3
(
mkdirat
,
int
,
dfd
,
const
char
__user
*
,
pathname
,
umode_t
,
mode
)
{
...
...
@@ -3519,6 +3533,7 @@ void dentry_unhash(struct dentry *dentry)
__d_drop
(
dentry
);
spin_unlock
(
&
dentry
->
d_lock
);
}
EXPORT_SYMBOL
(
dentry_unhash
);
int
vfs_rmdir
(
struct
inode
*
dir
,
struct
dentry
*
dentry
)
{
...
...
@@ -3556,6 +3571,7 @@ int vfs_rmdir(struct inode *dir, struct dentry *dentry)
d_delete
(
dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_rmdir
);
static
long
do_rmdir
(
int
dfd
,
const
char
__user
*
pathname
)
{
...
...
@@ -3673,6 +3689,7 @@ int vfs_unlink(struct inode *dir, struct dentry *dentry, struct inode **delegate
return
error
;
}
EXPORT_SYMBOL
(
vfs_unlink
);
/*
* Make sure that the actual truncation of the file will occur outside its
...
...
@@ -3786,6 +3803,7 @@ int vfs_symlink(struct inode *dir, struct dentry *dentry, const char *oldname)
fsnotify_create
(
dir
,
dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_symlink
);
SYSCALL_DEFINE3
(
symlinkat
,
const
char
__user
*
,
oldname
,
int
,
newdfd
,
const
char
__user
*
,
newname
)
...
...
@@ -3894,6 +3912,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
fsnotify_link
(
dir
,
inode
,
new_dentry
);
return
error
;
}
EXPORT_SYMBOL
(
vfs_link
);
/*
* Hardlinks are often used in delicate situations. We avoid
...
...
@@ -4156,6 +4175,7 @@ int vfs_rename(struct inode *old_dir, struct dentry *old_dentry,
return
error
;
}
EXPORT_SYMBOL
(
vfs_rename
);
SYSCALL_DEFINE4
(
renameat
,
int
,
olddfd
,
const
char
__user
*
,
oldname
,
int
,
newdfd
,
const
char
__user
*
,
newname
)
...
...
@@ -4293,6 +4313,7 @@ int vfs_readlink(struct dentry *dentry, char __user *buffer, int buflen, const c
out:
return
len
;
}
EXPORT_SYMBOL
(
vfs_readlink
);
/*
* A helper for ->readlink(). This should be used *ONLY* for symlinks that
...
...
@@ -4315,6 +4336,7 @@ int generic_readlink(struct dentry *dentry, char __user *buffer, int buflen)
dentry
->
d_inode
->
i_op
->
put_link
(
dentry
,
&
nd
,
cookie
);
return
res
;
}
EXPORT_SYMBOL
(
generic_readlink
);
/* get the link contents into pagecache */
static
char
*
page_getlink
(
struct
dentry
*
dentry
,
struct
page
**
ppage
)
...
...
@@ -4342,6 +4364,7 @@ int page_readlink(struct dentry *dentry, char __user *buffer, int buflen)
}
return
res
;
}
EXPORT_SYMBOL
(
page_readlink
);
void
*
page_follow_link_light
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
)
{
...
...
@@ -4349,6 +4372,7 @@ void *page_follow_link_light(struct dentry *dentry, struct nameidata *nd)
nd_set_link
(
nd
,
page_getlink
(
dentry
,
&
page
));
return
page
;
}
EXPORT_SYMBOL
(
page_follow_link_light
);
void
page_put_link
(
struct
dentry
*
dentry
,
struct
nameidata
*
nd
,
void
*
cookie
)
{
...
...
@@ -4359,6 +4383,7 @@ void page_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie)
page_cache_release
(
page
);
}
}
EXPORT_SYMBOL
(
page_put_link
);
/*
* The nofs argument instructs pagecache_write_begin to pass AOP_FLAG_NOFS
...
...
@@ -4396,44 +4421,18 @@ int __page_symlink(struct inode *inode, const char *symname, int len, int nofs)
fail:
return
err
;
}
EXPORT_SYMBOL
(
__page_symlink
);
int
page_symlink
(
struct
inode
*
inode
,
const
char
*
symname
,
int
len
)
{
return
__page_symlink
(
inode
,
symname
,
len
,
!
(
mapping_gfp_mask
(
inode
->
i_mapping
)
&
__GFP_FS
));
}
EXPORT_SYMBOL
(
page_symlink
);
const
struct
inode_operations
page_symlink_inode_operations
=
{
.
readlink
=
generic_readlink
,
.
follow_link
=
page_follow_link_light
,
.
put_link
=
page_put_link
,
};
EXPORT_SYMBOL
(
user_path_at
);
EXPORT_SYMBOL
(
follow_down_one
);
EXPORT_SYMBOL
(
follow_down
);
EXPORT_SYMBOL
(
follow_up
);
EXPORT_SYMBOL
(
lock_rename
);
EXPORT_SYMBOL
(
lookup_one_len
);
EXPORT_SYMBOL
(
page_follow_link_light
);
EXPORT_SYMBOL
(
page_put_link
);
EXPORT_SYMBOL
(
page_readlink
);
EXPORT_SYMBOL
(
__page_symlink
);
EXPORT_SYMBOL
(
page_symlink
);
EXPORT_SYMBOL
(
page_symlink_inode_operations
);
EXPORT_SYMBOL
(
kern_path
);
EXPORT_SYMBOL
(
vfs_path_lookup
);
EXPORT_SYMBOL
(
inode_permission
);
EXPORT_SYMBOL
(
unlock_rename
);
EXPORT_SYMBOL
(
vfs_create
);
EXPORT_SYMBOL
(
vfs_link
);
EXPORT_SYMBOL
(
vfs_mkdir
);
EXPORT_SYMBOL
(
vfs_mknod
);
EXPORT_SYMBOL
(
generic_permission
);
EXPORT_SYMBOL
(
vfs_readlink
);
EXPORT_SYMBOL
(
vfs_rename
);
EXPORT_SYMBOL
(
vfs_rmdir
);
EXPORT_SYMBOL
(
vfs_symlink
);
EXPORT_SYMBOL
(
vfs_unlink
);
EXPORT_SYMBOL
(
dentry_unhash
);
EXPORT_SYMBOL
(
generic_readlink
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录