Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
27198d85
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
27198d85
编写于
6月 10, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
上级
a7df849c
f5d9b97e
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
22 addition
and
19 deletion
+22
-19
fs/cifs/CHANGES
fs/cifs/CHANGES
+2
-1
fs/cifs/cifsfs.h
fs/cifs/cifsfs.h
+1
-1
fs/cifs/file.c
fs/cifs/file.c
+2
-0
fs/cifs/inode.c
fs/cifs/inode.c
+17
-17
未找到文件。
fs/cifs/CHANGES
浏览文件 @
27198d85
...
...
@@ -6,7 +6,8 @@ kills the cifsd thread (NB: killing the cifs kernel threads is not
recommended, unmount and rmmod cifs will kill them when they are
no longer needed). Fix readdir to ASCII servers (ie older servers
which do not support Unicode) and also require asterik.
Fix out of memory case in which data could be written one page
off in the page cache.
Version 1.33
------------
...
...
fs/cifs/cifsfs.h
浏览文件 @
27198d85
...
...
@@ -96,5 +96,5 @@ extern ssize_t cifs_getxattr(struct dentry *, const char *, void *, size_t);
extern
ssize_t
cifs_listxattr
(
struct
dentry
*
,
char
*
,
size_t
);
extern
int
cifs_ioctl
(
struct
inode
*
inode
,
struct
file
*
filep
,
unsigned
int
command
,
unsigned
long
arg
);
#define CIFS_VERSION "1.3
4
"
#define CIFS_VERSION "1.3
5
"
#endif
/* _CIFSFS_H */
fs/cifs/file.c
浏览文件 @
27198d85
...
...
@@ -1352,6 +1352,8 @@ static void cifs_copy_cache_pages(struct address_space *mapping,
GFP_KERNEL
))
{
page_cache_release
(
page
);
cFYI
(
1
,
(
"Add page cache failed"
));
data
+=
PAGE_CACHE_SIZE
;
bytes_read
-=
PAGE_CACHE_SIZE
;
continue
;
}
...
...
fs/cifs/inode.c
浏览文件 @
27198d85
...
...
@@ -82,12 +82,12 @@ int cifs_get_inode_info_unix(struct inode **pinode,
/* get new inode */
if
(
*
pinode
==
NULL
)
{
*
pinode
=
new_inode
(
sb
);
if
(
*
pinode
==
NULL
)
if
(
*
pinode
==
NULL
)
return
-
ENOMEM
;
/* Is an i_ino of zero legal? */
/* Are there sanity checks we can use to ensure that
the server is really filling in that field? */
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SERVER_INUM
)
{
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SERVER_INUM
)
{
(
*
pinode
)
->
i_ino
=
(
unsigned
long
)
findData
.
UniqueId
;
}
/* note ino incremented to unique num in new_inode */
...
...
@@ -134,7 +134,7 @@ int cifs_get_inode_info_unix(struct inode **pinode,
inode
->
i_gid
=
le64_to_cpu
(
findData
.
Gid
);
inode
->
i_nlink
=
le64_to_cpu
(
findData
.
Nlinks
);
if
(
is_size_safe_to_change
(
cifsInfo
))
{
if
(
is_size_safe_to_change
(
cifsInfo
))
{
/* can not safely change the file size here if the
client is writing to it due to potential races */
...
...
@@ -162,7 +162,7 @@ int cifs_get_inode_info_unix(struct inode **pinode,
if
(
S_ISREG
(
inode
->
i_mode
))
{
cFYI
(
1
,
(
" File inode "
));
inode
->
i_op
=
&
cifs_file_inode_ops
;
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_DIRECT_IO
)
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_DIRECT_IO
)
inode
->
i_fop
=
&
cifs_file_direct_ops
;
else
inode
->
i_fop
=
&
cifs_file_ops
;
...
...
@@ -198,17 +198,17 @@ int cifs_get_inode_info(struct inode **pinode,
pTcon
=
cifs_sb
->
tcon
;
cFYI
(
1
,(
"Getting info on %s "
,
search_path
));
if
((
pfindData
==
NULL
)
&&
(
*
pinode
!=
NULL
))
{
if
(
CIFS_I
(
*
pinode
)
->
clientCanCacheRead
)
{
if
((
pfindData
==
NULL
)
&&
(
*
pinode
!=
NULL
))
{
if
(
CIFS_I
(
*
pinode
)
->
clientCanCacheRead
)
{
cFYI
(
1
,(
"No need to revalidate cached inode sizes"
));
return
rc
;
}
}
/* if file info not passed in then get it from server */
if
(
pfindData
==
NULL
)
{
if
(
pfindData
==
NULL
)
{
buf
=
kmalloc
(
sizeof
(
FILE_ALL_INFO
),
GFP_KERNEL
);
if
(
buf
==
NULL
)
if
(
buf
==
NULL
)
return
-
ENOMEM
;
pfindData
=
(
FILE_ALL_INFO
*
)
buf
;
/* could do find first instead but this returns more info */
...
...
@@ -268,7 +268,7 @@ int cifs_get_inode_info(struct inode **pinode,
IndexNumber field is not guaranteed unique? */
#ifdef CONFIG_CIFS_EXPERIMENTAL
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SERVER_INUM
){
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SERVER_INUM
){
int
rc1
=
0
;
__u64
inode_num
;
...
...
@@ -277,7 +277,7 @@ int cifs_get_inode_info(struct inode **pinode,
cifs_sb
->
local_nls
,
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
if
(
rc1
)
{
if
(
rc1
)
{
cFYI
(
1
,(
"GetSrvInodeNum rc %d"
,
rc1
));
/* BB EOPNOSUPP disable SERVER_INUM? */
}
else
/* do we need cast or hash to ino? */
...
...
@@ -355,7 +355,7 @@ int cifs_get_inode_info(struct inode **pinode,
if
(
S_ISREG
(
inode
->
i_mode
))
{
cFYI
(
1
,
(
" File inode "
));
inode
->
i_op
=
&
cifs_file_inode_ops
;
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_DIRECT_IO
)
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_DIRECT_IO
)
inode
->
i_fop
=
&
cifs_file_direct_ops
;
else
inode
->
i_fop
=
&
cifs_file_ops
;
...
...
@@ -422,7 +422,7 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
if
(
!
rc
)
{
if
(
direntry
->
d_inode
)
if
(
direntry
->
d_inode
)
direntry
->
d_inode
->
i_nlink
--
;
}
else
if
(
rc
==
-
ENOENT
)
{
d_drop
(
direntry
);
...
...
@@ -441,7 +441,7 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
CIFSSMBClose
(
xid
,
pTcon
,
netfid
);
if
(
direntry
->
d_inode
)
if
(
direntry
->
d_inode
)
direntry
->
d_inode
->
i_nlink
--
;
}
}
else
if
(
rc
==
-
EACCES
)
{
...
...
@@ -496,7 +496,7 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
if
(
!
rc
)
{
if
(
direntry
->
d_inode
)
if
(
direntry
->
d_inode
)
direntry
->
d_inode
->
i_nlink
--
;
}
else
if
(
rc
==
-
ETXTBSY
)
{
int
oplock
=
FALSE
;
...
...
@@ -517,14 +517,14 @@ int cifs_unlink(struct inode *inode, struct dentry *direntry)
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_MAP_SPECIAL_CHR
);
CIFSSMBClose
(
xid
,
pTcon
,
netfid
);
if
(
direntry
->
d_inode
)
if
(
direntry
->
d_inode
)
direntry
->
d_inode
->
i_nlink
--
;
}
/* BB if rc = -ETXTBUSY goto the rename logic BB */
}
}
}
if
(
direntry
->
d_inode
)
{
if
(
direntry
->
d_inode
)
{
cifsInode
=
CIFS_I
(
direntry
->
d_inode
);
cifsInode
->
time
=
0
;
/* will force revalidate to get info
when needed */
...
...
@@ -582,7 +582,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
if
(
direntry
->
d_inode
)
direntry
->
d_inode
->
i_nlink
=
2
;
if
(
cifs_sb
->
tcon
->
ses
->
capabilities
&
CAP_UNIX
)
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SET_UID
)
{
if
(
cifs_sb
->
mnt_cifs_flags
&
CIFS_MOUNT_SET_UID
)
{
CIFSSMBUnixSetPerms
(
xid
,
pTcon
,
full_path
,
mode
,
(
__u64
)
current
->
euid
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录