Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openthos
linux
提交
c44dcc56
L
linux
项目概览
openthos
/
linux
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c44dcc56
编写于
2月 11, 2010
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
switch inotify_user to anon_inode
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
cccc6bba
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
6 addition
and
54 deletion
+6
-54
fs/notify/inotify/inotify_user.c
fs/notify/inotify/inotify_user.c
+6
-53
include/linux/magic.h
include/linux/magic.h
+0
-1
未找到文件。
fs/notify/inotify/inotify_user.c
浏览文件 @
c44dcc56
...
...
@@ -29,14 +29,12 @@
#include <linux/init.h>
/* module_init */
#include <linux/inotify.h>
#include <linux/kernel.h>
/* roundup() */
#include <linux/magic.h>
/* superblock magic number */
#include <linux/mount.h>
/* mntget */
#include <linux/namei.h>
/* LOOKUP_FOLLOW */
#include <linux/path.h>
/* struct path */
#include <linux/sched.h>
/* struct user */
#include <linux/slab.h>
/* struct kmem_cache */
#include <linux/syscalls.h>
#include <linux/types.h>
#include <linux/anon_inodes.h>
#include <linux/uaccess.h>
#include <linux/poll.h>
#include <linux/wait.h>
...
...
@@ -45,8 +43,6 @@
#include <asm/ioctls.h>
static
struct
vfsmount
*
inotify_mnt
__read_mostly
;
/* these are configurable via /proc/sys/fs/inotify/ */
static
int
inotify_max_user_instances
__read_mostly
;
static
int
inotify_max_queued_events
__read_mostly
;
...
...
@@ -645,9 +641,7 @@ SYSCALL_DEFINE1(inotify_init1, int, flags)
{
struct
fsnotify_group
*
group
;
struct
user_struct
*
user
;
struct
file
*
filp
;
struct
path
path
;
int
fd
,
ret
;
int
ret
;
/* Check the IN_* constants for consistency. */
BUILD_BUG_ON
(
IN_CLOEXEC
!=
O_CLOEXEC
);
...
...
@@ -656,10 +650,6 @@ SYSCALL_DEFINE1(inotify_init1, int, flags)
if
(
flags
&
~
(
IN_CLOEXEC
|
IN_NONBLOCK
))
return
-
EINVAL
;
fd
=
get_unused_fd_flags
(
flags
&
O_CLOEXEC
);
if
(
fd
<
0
)
return
fd
;
user
=
get_current_user
();
if
(
unlikely
(
atomic_read
(
&
user
->
inotify_devs
)
>=
inotify_max_user_instances
))
{
...
...
@@ -676,27 +666,14 @@ SYSCALL_DEFINE1(inotify_init1, int, flags)
atomic_inc
(
&
user
->
inotify_devs
);
path
.
mnt
=
inotify_mnt
;
path
.
dentry
=
inotify_mnt
->
mnt_root
;
path_get
(
&
path
);
filp
=
alloc_file
(
&
path
,
FMODE_READ
,
&
inotify_fops
);
if
(
!
filp
)
goto
Enfile
;
ret
=
anon_inode_getfd
(
"inotify"
,
&
inotify_fops
,
group
,
O_RDONLY
|
flags
);
if
(
ret
>=
0
)
return
ret
;
filp
->
f_flags
=
O_RDONLY
|
(
flags
&
O_NONBLOCK
);
filp
->
private_data
=
group
;
fd_install
(
fd
,
filp
);
return
fd
;
Enfile:
ret
=
-
ENFILE
;
path_put
(
&
path
);
atomic_dec
(
&
user
->
inotify_devs
);
out_free_uid:
free_uid
(
user
);
put_unused_fd
(
fd
);
return
ret
;
}
...
...
@@ -783,20 +760,6 @@ out:
return
ret
;
}
static
int
inotify_get_sb
(
struct
file_system_type
*
fs_type
,
int
flags
,
const
char
*
dev_name
,
void
*
data
,
struct
vfsmount
*
mnt
)
{
return
get_sb_pseudo
(
fs_type
,
"inotify"
,
NULL
,
INOTIFYFS_SUPER_MAGIC
,
mnt
);
}
static
struct
file_system_type
inotify_fs_type
=
{
.
name
=
"inotifyfs"
,
.
get_sb
=
inotify_get_sb
,
.
kill_sb
=
kill_anon_super
,
};
/*
* inotify_user_setup - Our initialization function. Note that we cannnot return
* error because we have compiled-in VFS hooks. So an (unlikely) failure here
...
...
@@ -804,16 +767,6 @@ static struct file_system_type inotify_fs_type = {
*/
static
int
__init
inotify_user_setup
(
void
)
{
int
ret
;
ret
=
register_filesystem
(
&
inotify_fs_type
);
if
(
unlikely
(
ret
))
panic
(
"inotify: register_filesystem returned %d!
\n
"
,
ret
);
inotify_mnt
=
kern_mount
(
&
inotify_fs_type
);
if
(
IS_ERR
(
inotify_mnt
))
panic
(
"inotify: kern_mount ret %ld!
\n
"
,
PTR_ERR
(
inotify_mnt
));
inotify_inode_mark_cachep
=
KMEM_CACHE
(
inotify_inode_mark_entry
,
SLAB_PANIC
);
event_priv_cachep
=
KMEM_CACHE
(
inotify_event_private_data
,
SLAB_PANIC
);
...
...
include/linux/magic.h
浏览文件 @
c44dcc56
...
...
@@ -52,7 +52,6 @@
#define CGROUP_SUPER_MAGIC 0x27e0eb
#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
#define INOTIFYFS_SUPER_MAGIC 0x2BAD1DEA
#define STACK_END_MAGIC 0x57AC6E9D
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录