Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
12f38872
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
12f38872
编写于
9月 15, 2013
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libfs: get exports to definitions of objects being exported...
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
cbe9c085
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
34 addition
and
35 deletion
+34
-35
fs/libfs.c
fs/libfs.c
+34
-35
未找到文件。
fs/libfs.c
浏览文件 @
12f38872
...
...
@@ -31,6 +31,7 @@ int simple_getattr(struct vfsmount *mnt, struct dentry *dentry,
stat
->
blocks
=
inode
->
i_mapping
->
nrpages
<<
(
PAGE_CACHE_SHIFT
-
9
);
return
0
;
}
EXPORT_SYMBOL
(
simple_getattr
);
int
simple_statfs
(
struct
dentry
*
dentry
,
struct
kstatfs
*
buf
)
{
...
...
@@ -39,6 +40,7 @@ int simple_statfs(struct dentry *dentry, struct kstatfs *buf)
buf
->
f_namelen
=
NAME_MAX
;
return
0
;
}
EXPORT_SYMBOL
(
simple_statfs
);
/*
* Retaining negative dentries for an in-memory filesystem just wastes
...
...
@@ -66,6 +68,7 @@ struct dentry *simple_lookup(struct inode *dir, struct dentry *dentry, unsigned
d_add
(
dentry
,
NULL
);
return
NULL
;
}
EXPORT_SYMBOL
(
simple_lookup
);
int
dcache_dir_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
...
...
@@ -75,12 +78,14 @@ int dcache_dir_open(struct inode *inode, struct file *file)
return
file
->
private_data
?
0
:
-
ENOMEM
;
}
EXPORT_SYMBOL
(
dcache_dir_open
);
int
dcache_dir_close
(
struct
inode
*
inode
,
struct
file
*
file
)
{
dput
(
file
->
private_data
);
return
0
;
}
EXPORT_SYMBOL
(
dcache_dir_close
);
loff_t
dcache_dir_lseek
(
struct
file
*
file
,
loff_t
offset
,
int
whence
)
{
...
...
@@ -123,6 +128,7 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
mutex_unlock
(
&
dentry
->
d_inode
->
i_mutex
);
return
offset
;
}
EXPORT_SYMBOL
(
dcache_dir_lseek
);
/* Relationship between i_mode and the DT_xxx types */
static
inline
unsigned
char
dt_type
(
struct
inode
*
inode
)
...
...
@@ -172,11 +178,13 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
spin_unlock
(
&
dentry
->
d_lock
);
return
0
;
}
EXPORT_SYMBOL
(
dcache_readdir
);
ssize_t
generic_read_dir
(
struct
file
*
filp
,
char
__user
*
buf
,
size_t
siz
,
loff_t
*
ppos
)
{
return
-
EISDIR
;
}
EXPORT_SYMBOL
(
generic_read_dir
);
const
struct
file_operations
simple_dir_operations
=
{
.
open
=
dcache_dir_open
,
...
...
@@ -186,10 +194,12 @@ const struct file_operations simple_dir_operations = {
.
iterate
=
dcache_readdir
,
.
fsync
=
noop_fsync
,
};
EXPORT_SYMBOL
(
simple_dir_operations
);
const
struct
inode_operations
simple_dir_inode_operations
=
{
.
lookup
=
simple_lookup
,
};
EXPORT_SYMBOL
(
simple_dir_inode_operations
);
static
const
struct
super_operations
simple_super_operations
=
{
.
statfs
=
simple_statfs
,
...
...
@@ -244,6 +254,7 @@ struct dentry *mount_pseudo(struct file_system_type *fs_type, char *name,
deactivate_locked_super
(
s
);
return
ERR_PTR
(
-
ENOMEM
);
}
EXPORT_SYMBOL
(
mount_pseudo
);
int
simple_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
...
...
@@ -251,6 +262,7 @@ int simple_open(struct inode *inode, struct file *file)
file
->
private_data
=
inode
->
i_private
;
return
0
;
}
EXPORT_SYMBOL
(
simple_open
);
int
simple_link
(
struct
dentry
*
old_dentry
,
struct
inode
*
dir
,
struct
dentry
*
dentry
)
{
...
...
@@ -263,6 +275,7 @@ int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *den
d_instantiate
(
dentry
,
inode
);
return
0
;
}
EXPORT_SYMBOL
(
simple_link
);
int
simple_empty
(
struct
dentry
*
dentry
)
{
...
...
@@ -283,6 +296,7 @@ int simple_empty(struct dentry *dentry)
spin_unlock
(
&
dentry
->
d_lock
);
return
ret
;
}
EXPORT_SYMBOL
(
simple_empty
);
int
simple_unlink
(
struct
inode
*
dir
,
struct
dentry
*
dentry
)
{
...
...
@@ -293,6 +307,7 @@ int simple_unlink(struct inode *dir, struct dentry *dentry)
dput
(
dentry
);
return
0
;
}
EXPORT_SYMBOL
(
simple_unlink
);
int
simple_rmdir
(
struct
inode
*
dir
,
struct
dentry
*
dentry
)
{
...
...
@@ -304,6 +319,7 @@ int simple_rmdir(struct inode *dir, struct dentry *dentry)
drop_nlink
(
dir
);
return
0
;
}
EXPORT_SYMBOL
(
simple_rmdir
);
int
simple_rename
(
struct
inode
*
old_dir
,
struct
dentry
*
old_dentry
,
struct
inode
*
new_dir
,
struct
dentry
*
new_dentry
)
...
...
@@ -330,6 +346,7 @@ int simple_rename(struct inode *old_dir, struct dentry *old_dentry,
return
0
;
}
EXPORT_SYMBOL
(
simple_rename
);
/**
* simple_setattr - setattr for simple filesystem
...
...
@@ -370,6 +387,7 @@ int simple_readpage(struct file *file, struct page *page)
unlock_page
(
page
);
return
0
;
}
EXPORT_SYMBOL
(
simple_readpage
);
int
simple_write_begin
(
struct
file
*
file
,
struct
address_space
*
mapping
,
loff_t
pos
,
unsigned
len
,
unsigned
flags
,
...
...
@@ -393,6 +411,7 @@ int simple_write_begin(struct file *file, struct address_space *mapping,
}
return
0
;
}
EXPORT_SYMBOL
(
simple_write_begin
);
/**
* simple_write_end - .write_end helper for non-block-device FSes
...
...
@@ -444,6 +463,7 @@ int simple_write_end(struct file *file, struct address_space *mapping,
return
copied
;
}
EXPORT_SYMBOL
(
simple_write_end
);
/*
* the inodes created here are not hashed. If you use iunique to generate
...
...
@@ -512,6 +532,7 @@ int simple_fill_super(struct super_block *s, unsigned long magic,
dput
(
root
);
return
-
ENOMEM
;
}
EXPORT_SYMBOL
(
simple_fill_super
);
static
DEFINE_SPINLOCK
(
pin_fs_lock
);
...
...
@@ -534,6 +555,7 @@ int simple_pin_fs(struct file_system_type *type, struct vfsmount **mount, int *c
mntput
(
mnt
);
return
0
;
}
EXPORT_SYMBOL
(
simple_pin_fs
);
void
simple_release_fs
(
struct
vfsmount
**
mount
,
int
*
count
)
{
...
...
@@ -545,6 +567,7 @@ void simple_release_fs(struct vfsmount **mount, int *count)
spin_unlock
(
&
pin_fs_lock
);
mntput
(
mnt
);
}
EXPORT_SYMBOL
(
simple_release_fs
);
/**
* simple_read_from_buffer - copy data from the buffer to user space
...
...
@@ -579,6 +602,7 @@ ssize_t simple_read_from_buffer(void __user *to, size_t count, loff_t *ppos,
*
ppos
=
pos
+
count
;
return
count
;
}
EXPORT_SYMBOL
(
simple_read_from_buffer
);
/**
* simple_write_to_buffer - copy data from user space to the buffer
...
...
@@ -613,6 +637,7 @@ ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos,
*
ppos
=
pos
+
count
;
return
count
;
}
EXPORT_SYMBOL
(
simple_write_to_buffer
);
/**
* memory_read_from_buffer - copy data from the buffer
...
...
@@ -644,6 +669,7 @@ ssize_t memory_read_from_buffer(void *to, size_t count, loff_t *ppos,
return
count
;
}
EXPORT_SYMBOL
(
memory_read_from_buffer
);
/*
* Transaction based IO.
...
...
@@ -665,6 +691,7 @@ void simple_transaction_set(struct file *file, size_t n)
smp_mb
();
ar
->
size
=
n
;
}
EXPORT_SYMBOL
(
simple_transaction_set
);
char
*
simple_transaction_get
(
struct
file
*
file
,
const
char
__user
*
buf
,
size_t
size
)
{
...
...
@@ -696,6 +723,7 @@ char *simple_transaction_get(struct file *file, const char __user *buf, size_t s
return
ar
->
data
;
}
EXPORT_SYMBOL
(
simple_transaction_get
);
ssize_t
simple_transaction_read
(
struct
file
*
file
,
char
__user
*
buf
,
size_t
size
,
loff_t
*
pos
)
{
...
...
@@ -705,12 +733,14 @@ ssize_t simple_transaction_read(struct file *file, char __user *buf, size_t size
return
0
;
return
simple_read_from_buffer
(
buf
,
size
,
pos
,
ar
->
data
,
ar
->
size
);
}
EXPORT_SYMBOL
(
simple_transaction_read
);
int
simple_transaction_release
(
struct
inode
*
inode
,
struct
file
*
file
)
{
free_page
((
unsigned
long
)
file
->
private_data
);
return
0
;
}
EXPORT_SYMBOL
(
simple_transaction_release
);
/* Simple attribute files */
...
...
@@ -746,12 +776,14 @@ int simple_attr_open(struct inode *inode, struct file *file,
return
nonseekable_open
(
inode
,
file
);
}
EXPORT_SYMBOL_GPL
(
simple_attr_open
);
int
simple_attr_release
(
struct
inode
*
inode
,
struct
file
*
file
)
{
kfree
(
file
->
private_data
);
return
0
;
}
EXPORT_SYMBOL_GPL
(
simple_attr_release
);
/* GPL-only? This? Really? */
/* read from the buffer that is filled with the get function */
ssize_t
simple_attr_read
(
struct
file
*
file
,
char
__user
*
buf
,
...
...
@@ -787,6 +819,7 @@ ssize_t simple_attr_read(struct file *file, char __user *buf,
mutex_unlock
(
&
attr
->
mutex
);
return
ret
;
}
EXPORT_SYMBOL_GPL
(
simple_attr_read
);
/* interpret the buffer as a number to call the set function with */
ssize_t
simple_attr_write
(
struct
file
*
file
,
const
char
__user
*
buf
,
...
...
@@ -819,6 +852,7 @@ ssize_t simple_attr_write(struct file *file, const char __user *buf,
mutex_unlock
(
&
attr
->
mutex
);
return
ret
;
}
EXPORT_SYMBOL_GPL
(
simple_attr_write
);
/**
* generic_fh_to_dentry - generic helper for the fh_to_dentry export operation
...
...
@@ -957,39 +991,4 @@ int noop_fsync(struct file *file, loff_t start, loff_t end, int datasync)
{
return
0
;
}
EXPORT_SYMBOL
(
dcache_dir_close
);
EXPORT_SYMBOL
(
dcache_dir_lseek
);
EXPORT_SYMBOL
(
dcache_dir_open
);
EXPORT_SYMBOL
(
dcache_readdir
);
EXPORT_SYMBOL
(
generic_read_dir
);
EXPORT_SYMBOL
(
mount_pseudo
);
EXPORT_SYMBOL
(
simple_write_begin
);
EXPORT_SYMBOL
(
simple_write_end
);
EXPORT_SYMBOL
(
simple_dir_inode_operations
);
EXPORT_SYMBOL
(
simple_dir_operations
);
EXPORT_SYMBOL
(
simple_empty
);
EXPORT_SYMBOL
(
simple_fill_super
);
EXPORT_SYMBOL
(
simple_getattr
);
EXPORT_SYMBOL
(
simple_open
);
EXPORT_SYMBOL
(
simple_link
);
EXPORT_SYMBOL
(
simple_lookup
);
EXPORT_SYMBOL
(
simple_pin_fs
);
EXPORT_SYMBOL
(
simple_readpage
);
EXPORT_SYMBOL
(
simple_release_fs
);
EXPORT_SYMBOL
(
simple_rename
);
EXPORT_SYMBOL
(
simple_rmdir
);
EXPORT_SYMBOL
(
simple_statfs
);
EXPORT_SYMBOL
(
noop_fsync
);
EXPORT_SYMBOL
(
simple_unlink
);
EXPORT_SYMBOL
(
simple_read_from_buffer
);
EXPORT_SYMBOL
(
simple_write_to_buffer
);
EXPORT_SYMBOL
(
memory_read_from_buffer
);
EXPORT_SYMBOL
(
simple_transaction_set
);
EXPORT_SYMBOL
(
simple_transaction_get
);
EXPORT_SYMBOL
(
simple_transaction_read
);
EXPORT_SYMBOL
(
simple_transaction_release
);
EXPORT_SYMBOL_GPL
(
simple_attr_open
);
EXPORT_SYMBOL_GPL
(
simple_attr_release
);
EXPORT_SYMBOL_GPL
(
simple_attr_read
);
EXPORT_SYMBOL_GPL
(
simple_attr_write
);
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录