Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xiphi1978
linux
提交
42faad99
L
linux
项目概览
xiphi1978
/
linux
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
42faad99
编写于
4月 24, 2008
作者:
A
Al Viro
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[PATCH] restore sane ->umount_begin() API
Signed-off-by:
N
Al Viro
<
viro@zeniv.linux.org.uk
>
上级
78d31a3a
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
16 addition
and
22 deletion
+16
-22
fs/9p/vfs_super.c
fs/9p/vfs_super.c
+3
-4
fs/cifs/cifsfs.c
fs/cifs/cifsfs.c
+2
-5
fs/fuse/inode.c
fs/fuse/inode.c
+2
-3
fs/namespace.c
fs/namespace.c
+5
-4
fs/nfs/super.c
fs/nfs/super.c
+3
-5
include/linux/fs.h
include/linux/fs.h
+1
-1
未找到文件。
fs/9p/vfs_super.c
浏览文件 @
42faad99
...
...
@@ -224,12 +224,11 @@ static int v9fs_show_options(struct seq_file *m, struct vfsmount *mnt)
}
static
void
v9fs_umount_begin
(
struct
vfsmount
*
vfsmnt
,
int
flags
)
v9fs_umount_begin
(
struct
super_block
*
sb
)
{
struct
v9fs_session_info
*
v9ses
=
vfsmnt
->
mnt_
sb
->
s_fs_info
;
struct
v9fs_session_info
*
v9ses
=
sb
->
s_fs_info
;
if
(
flags
&
MNT_FORCE
)
v9fs_session_cancel
(
v9ses
);
v9fs_session_cancel
(
v9ses
);
}
static
const
struct
super_operations
v9fs_super_ops
=
{
...
...
fs/cifs/cifsfs.c
浏览文件 @
42faad99
...
...
@@ -466,14 +466,11 @@ static struct quotactl_ops cifs_quotactl_ops = {
};
#endif
static
void
cifs_umount_begin
(
struct
vfsmount
*
vfsmnt
,
int
flags
)
static
void
cifs_umount_begin
(
struct
super_block
*
sb
)
{
struct
cifs_sb_info
*
cifs_sb
;
struct
cifs_sb_info
*
cifs_sb
=
CIFS_SB
(
sb
)
;
struct
cifsTconInfo
*
tcon
;
if
(
!
(
flags
&
MNT_FORCE
))
return
;
cifs_sb
=
CIFS_SB
(
vfsmnt
->
mnt_sb
);
if
(
cifs_sb
==
NULL
)
return
;
...
...
fs/fuse/inode.c
浏览文件 @
42faad99
...
...
@@ -242,10 +242,9 @@ struct inode *fuse_iget(struct super_block *sb, unsigned long nodeid,
return
inode
;
}
static
void
fuse_umount_begin
(
struct
vfsmount
*
vfsmnt
,
int
flags
)
static
void
fuse_umount_begin
(
struct
super_block
*
sb
)
{
if
(
flags
&
MNT_FORCE
)
fuse_abort_conn
(
get_fuse_conn_super
(
vfsmnt
->
mnt_sb
));
fuse_abort_conn
(
get_fuse_conn_super
(
sb
));
}
static
void
fuse_send_destroy
(
struct
fuse_conn
*
fc
)
...
...
fs/namespace.c
浏览文件 @
42faad99
...
...
@@ -1061,10 +1061,11 @@ static int do_umount(struct vfsmount *mnt, int flags)
* about for the moment.
*/
lock_kernel
();
if
(
sb
->
s_op
->
umount_begin
)
sb
->
s_op
->
umount_begin
(
mnt
,
flags
);
unlock_kernel
();
if
(
flags
&
MNT_FORCE
&&
sb
->
s_op
->
umount_begin
)
{
lock_kernel
();
sb
->
s_op
->
umount_begin
(
sb
);
unlock_kernel
();
}
/*
* No sense to grab the lock for this test, but test itself looks
...
...
fs/nfs/super.c
浏览文件 @
42faad99
...
...
@@ -198,7 +198,7 @@ static match_table_t nfs_secflavor_tokens = {
};
static
void
nfs_umount_begin
(
struct
vfsmount
*
,
int
);
static
void
nfs_umount_begin
(
struct
super_block
*
);
static
int
nfs_statfs
(
struct
dentry
*
,
struct
kstatfs
*
);
static
int
nfs_show_options
(
struct
seq_file
*
,
struct
vfsmount
*
);
static
int
nfs_show_stats
(
struct
seq_file
*
,
struct
vfsmount
*
);
...
...
@@ -647,13 +647,11 @@ static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt)
* Begin unmount by attempting to remove all automounted mountpoints we added
* in response to xdev traversals and referrals
*/
static
void
nfs_umount_begin
(
struct
vfsmount
*
vfsmnt
,
int
flags
)
static
void
nfs_umount_begin
(
struct
super_block
*
sb
)
{
struct
nfs_server
*
server
=
NFS_SB
(
vfsmnt
->
mnt_
sb
);
struct
nfs_server
*
server
=
NFS_SB
(
sb
);
struct
rpc_clnt
*
rpc
;
if
(
!
(
flags
&
MNT_FORCE
))
return
;
/* -EIO all pending I/O */
rpc
=
server
->
client_acl
;
if
(
!
IS_ERR
(
rpc
))
...
...
include/linux/fs.h
浏览文件 @
42faad99
...
...
@@ -1308,7 +1308,7 @@ struct super_operations {
int
(
*
statfs
)
(
struct
dentry
*
,
struct
kstatfs
*
);
int
(
*
remount_fs
)
(
struct
super_block
*
,
int
*
,
char
*
);
void
(
*
clear_inode
)
(
struct
inode
*
);
void
(
*
umount_begin
)
(
struct
vfsmount
*
,
int
);
void
(
*
umount_begin
)
(
struct
super_block
*
);
int
(
*
show_options
)(
struct
seq_file
*
,
struct
vfsmount
*
);
int
(
*
show_stats
)(
struct
seq_file
*
,
struct
vfsmount
*
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录