Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8caf8915
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
8caf8915
编写于
10月 28, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'for-linus' of
git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6
上级
f12baeab
7038f1cb
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
38 addition
and
19 deletion
+38
-19
fs/jfs/jfs_dmap.c
fs/jfs/jfs_dmap.c
+14
-6
fs/jfs/jfs_imap.c
fs/jfs/jfs_imap.c
+8
-2
fs/jfs/jfs_metapage.c
fs/jfs/jfs_metapage.c
+6
-0
fs/jfs/jfs_txnmgr.c
fs/jfs/jfs_txnmgr.c
+0
-2
fs/jfs/jfs_xtree.c
fs/jfs/jfs_xtree.c
+9
-9
fs/jfs/super.c
fs/jfs/super.c
+1
-0
未找到文件。
fs/jfs/jfs_dmap.c
浏览文件 @
8caf8915
...
@@ -74,7 +74,7 @@
...
@@ -74,7 +74,7 @@
static
void
dbAllocBits
(
struct
bmap
*
bmp
,
struct
dmap
*
dp
,
s64
blkno
,
static
void
dbAllocBits
(
struct
bmap
*
bmp
,
struct
dmap
*
dp
,
s64
blkno
,
int
nblocks
);
int
nblocks
);
static
void
dbSplit
(
dmtree_t
*
tp
,
int
leafno
,
int
splitsz
,
int
newval
);
static
void
dbSplit
(
dmtree_t
*
tp
,
int
leafno
,
int
splitsz
,
int
newval
);
static
void
dbBackSplit
(
dmtree_t
*
tp
,
int
leafno
);
static
int
dbBackSplit
(
dmtree_t
*
tp
,
int
leafno
);
static
int
dbJoin
(
dmtree_t
*
tp
,
int
leafno
,
int
newval
);
static
int
dbJoin
(
dmtree_t
*
tp
,
int
leafno
,
int
newval
);
static
void
dbAdjTree
(
dmtree_t
*
tp
,
int
leafno
,
int
newval
);
static
void
dbAdjTree
(
dmtree_t
*
tp
,
int
leafno
,
int
newval
);
static
int
dbAdjCtl
(
struct
bmap
*
bmp
,
s64
blkno
,
int
newval
,
int
alloc
,
static
int
dbAdjCtl
(
struct
bmap
*
bmp
,
s64
blkno
,
int
newval
,
int
alloc
,
...
@@ -305,7 +305,6 @@ int dbSync(struct inode *ipbmap)
...
@@ -305,7 +305,6 @@ int dbSync(struct inode *ipbmap)
filemap_fdatawrite
(
ipbmap
->
i_mapping
);
filemap_fdatawrite
(
ipbmap
->
i_mapping
);
filemap_fdatawait
(
ipbmap
->
i_mapping
);
filemap_fdatawait
(
ipbmap
->
i_mapping
);
ipbmap
->
i_state
|=
I_DIRTY
;
diWriteSpecial
(
ipbmap
,
0
);
diWriteSpecial
(
ipbmap
,
0
);
return
(
0
);
return
(
0
);
...
@@ -2467,7 +2466,9 @@ dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level)
...
@@ -2467,7 +2466,9 @@ dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level)
* that it is at the front of a binary buddy system.
* that it is at the front of a binary buddy system.
*/
*/
if
(
oldval
==
NOFREE
)
{
if
(
oldval
==
NOFREE
)
{
dbBackSplit
((
dmtree_t
*
)
dcp
,
leafno
);
rc
=
dbBackSplit
((
dmtree_t
*
)
dcp
,
leafno
);
if
(
rc
)
return
rc
;
oldval
=
dcp
->
stree
[
ti
];
oldval
=
dcp
->
stree
[
ti
];
}
}
dbSplit
((
dmtree_t
*
)
dcp
,
leafno
,
dcp
->
budmin
,
newval
);
dbSplit
((
dmtree_t
*
)
dcp
,
leafno
,
dcp
->
budmin
,
newval
);
...
@@ -2627,7 +2628,7 @@ static void dbSplit(dmtree_t * tp, int leafno, int splitsz, int newval)
...
@@ -2627,7 +2628,7 @@ static void dbSplit(dmtree_t * tp, int leafno, int splitsz, int newval)
*
*
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
* serialization: IREAD_LOCK(ipbmap) or IWRITE_LOCK(ipbmap) held on entry/exit;
*/
*/
static
void
dbBackSplit
(
dmtree_t
*
tp
,
int
leafno
)
static
int
dbBackSplit
(
dmtree_t
*
tp
,
int
leafno
)
{
{
int
budsz
,
bud
,
w
,
bsz
,
size
;
int
budsz
,
bud
,
w
,
bsz
,
size
;
int
cursz
;
int
cursz
;
...
@@ -2662,7 +2663,10 @@ static void dbBackSplit(dmtree_t * tp, int leafno)
...
@@ -2662,7 +2663,10 @@ static void dbBackSplit(dmtree_t * tp, int leafno)
*/
*/
for
(
w
=
leafno
,
bsz
=
budsz
;;
bsz
<<=
1
,
for
(
w
=
leafno
,
bsz
=
budsz
;;
bsz
<<=
1
,
w
=
(
w
<
bud
)
?
w
:
bud
)
{
w
=
(
w
<
bud
)
?
w
:
bud
)
{
assert
(
bsz
<
le32_to_cpu
(
tp
->
dmt_nleafs
));
if
(
bsz
>=
le32_to_cpu
(
tp
->
dmt_nleafs
))
{
jfs_err
(
"JFS: block map error in dbBackSplit"
);
return
-
EIO
;
}
/* determine the buddy.
/* determine the buddy.
*/
*/
...
@@ -2681,7 +2685,11 @@ static void dbBackSplit(dmtree_t * tp, int leafno)
...
@@ -2681,7 +2685,11 @@ static void dbBackSplit(dmtree_t * tp, int leafno)
}
}
}
}
assert
(
leaf
[
leafno
]
==
size
);
if
(
leaf
[
leafno
]
!=
size
)
{
jfs_err
(
"JFS: wrong leaf value in dbBackSplit"
);
return
-
EIO
;
}
return
0
;
}
}
...
...
fs/jfs/jfs_imap.c
浏览文件 @
8caf8915
...
@@ -56,6 +56,12 @@
...
@@ -56,6 +56,12 @@
#include "jfs_superblock.h"
#include "jfs_superblock.h"
#include "jfs_debug.h"
#include "jfs_debug.h"
/*
* __mark_inode_dirty expects inodes to be hashed. Since we don't want
* special inodes in the fileset inode space, we hash them to a dummy head
*/
static
HLIST_HEAD
(
aggregate_hash
);
/*
/*
* imap locks
* imap locks
*/
*/
...
@@ -491,6 +497,8 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary)
...
@@ -491,6 +497,8 @@ struct inode *diReadSpecial(struct super_block *sb, ino_t inum, int secondary)
/* release the page */
/* release the page */
release_metapage
(
mp
);
release_metapage
(
mp
);
hlist_add_head
(
&
ip
->
i_hash
,
&
aggregate_hash
);
return
(
ip
);
return
(
ip
);
}
}
...
@@ -514,8 +522,6 @@ void diWriteSpecial(struct inode *ip, int secondary)
...
@@ -514,8 +522,6 @@ void diWriteSpecial(struct inode *ip, int secondary)
ino_t
inum
=
ip
->
i_ino
;
ino_t
inum
=
ip
->
i_ino
;
struct
metapage
*
mp
;
struct
metapage
*
mp
;
ip
->
i_state
&=
~
I_DIRTY
;
if
(
secondary
)
if
(
secondary
)
address
=
addressPXD
(
&
sbi
->
ait2
)
>>
sbi
->
l2nbperpage
;
address
=
addressPXD
(
&
sbi
->
ait2
)
>>
sbi
->
l2nbperpage
;
else
else
...
...
fs/jfs/jfs_metapage.c
浏览文件 @
8caf8915
...
@@ -395,6 +395,12 @@ static int metapage_writepage(struct page *page, struct writeback_control *wbc)
...
@@ -395,6 +395,12 @@ static int metapage_writepage(struct page *page, struct writeback_control *wbc)
if
(
mp
->
nohomeok
&&
!
test_bit
(
META_forcewrite
,
&
mp
->
flag
))
{
if
(
mp
->
nohomeok
&&
!
test_bit
(
META_forcewrite
,
&
mp
->
flag
))
{
redirty
=
1
;
redirty
=
1
;
/*
* Make sure this page isn't blocked indefinitely.
* If the journal isn't undergoing I/O, push it
*/
if
(
mp
->
log
&&
!
(
mp
->
log
->
cflag
&
logGC_PAGEOUT
))
jfs_flush_journal
(
mp
->
log
,
0
);
continue
;
continue
;
}
}
...
...
fs/jfs/jfs_txnmgr.c
浏览文件 @
8caf8915
...
@@ -2396,7 +2396,6 @@ static void txUpdateMap(struct tblock * tblk)
...
@@ -2396,7 +2396,6 @@ static void txUpdateMap(struct tblock * tblk)
*/
*/
if
(
tblk
->
xflag
&
COMMIT_CREATE
)
{
if
(
tblk
->
xflag
&
COMMIT_CREATE
)
{
diUpdatePMap
(
ipimap
,
tblk
->
ino
,
FALSE
,
tblk
);
diUpdatePMap
(
ipimap
,
tblk
->
ino
,
FALSE
,
tblk
);
ipimap
->
i_state
|=
I_DIRTY
;
/* update persistent block allocation map
/* update persistent block allocation map
* for the allocation of inode extent;
* for the allocation of inode extent;
*/
*/
...
@@ -2407,7 +2406,6 @@ static void txUpdateMap(struct tblock * tblk)
...
@@ -2407,7 +2406,6 @@ static void txUpdateMap(struct tblock * tblk)
}
else
if
(
tblk
->
xflag
&
COMMIT_DELETE
)
{
}
else
if
(
tblk
->
xflag
&
COMMIT_DELETE
)
{
ip
=
tblk
->
u
.
ip
;
ip
=
tblk
->
u
.
ip
;
diUpdatePMap
(
ipimap
,
ip
->
i_ino
,
TRUE
,
tblk
);
diUpdatePMap
(
ipimap
,
ip
->
i_ino
,
TRUE
,
tblk
);
ipimap
->
i_state
|=
I_DIRTY
;
iput
(
ip
);
iput
(
ip
);
}
}
}
}
...
...
fs/jfs/jfs_xtree.c
浏览文件 @
8caf8915
...
@@ -3516,16 +3516,10 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
...
@@ -3516,16 +3516,10 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
/* process entries backward from last index */
/* process entries backward from last index */
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
index
=
le16_to_cpu
(
p
->
header
.
nextindex
)
-
1
;
if
(
p
->
header
.
flag
&
BT_INTERNAL
)
goto
getChild
;
/*
* leaf page
*/
/* Since this is the rightmost
leaf, and we may have already freed
/* Since this is the rightmost
page at this level, and we may have
* a
page that was formerly to the right, let's make sure that th
e
* a
lready freed a page that was formerly to the right, let's mak
e
* next pointer is zero.
*
sure that the
next pointer is zero.
*/
*/
if
(
p
->
header
.
next
)
{
if
(
p
->
header
.
next
)
{
if
(
log
)
if
(
log
)
...
@@ -3539,6 +3533,12 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
...
@@ -3539,6 +3533,12 @@ s64 xtTruncate(tid_t tid, struct inode *ip, s64 newsize, int flag)
p
->
header
.
next
=
0
;
p
->
header
.
next
=
0
;
}
}
if
(
p
->
header
.
flag
&
BT_INTERNAL
)
goto
getChild
;
/*
* leaf page
*/
freed
=
0
;
freed
=
0
;
/* does region covered by leaf page precede Teof ? */
/* does region covered by leaf page precede Teof ? */
...
...
fs/jfs/super.c
浏览文件 @
8caf8915
...
@@ -442,6 +442,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
...
@@ -442,6 +442,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
inode
->
i_nlink
=
1
;
inode
->
i_nlink
=
1
;
inode
->
i_size
=
sb
->
s_bdev
->
bd_inode
->
i_size
;
inode
->
i_size
=
sb
->
s_bdev
->
bd_inode
->
i_size
;
inode
->
i_mapping
->
a_ops
=
&
jfs_metapage_aops
;
inode
->
i_mapping
->
a_ops
=
&
jfs_metapage_aops
;
insert_inode_hash
(
inode
);
mapping_set_gfp_mask
(
inode
->
i_mapping
,
GFP_NOFS
);
mapping_set_gfp_mask
(
inode
->
i_mapping
,
GFP_NOFS
);
sbi
->
direct_inode
=
inode
;
sbi
->
direct_inode
=
inode
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录