Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
06ed4b31
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
06ed4b31
编写于
2月 20, 2007
作者:
C
Chris Mason
提交者:
David Woodhouse
2月 20, 2007
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Btrfs: add mkfs.c
Signed-off-by:
N
Chris Mason
<
chris.mason@oracle.com
>
上级
d97e63b6
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
69 addition
and
0 deletion
+69
-0
fs/btrfs/mkfs.c
fs/btrfs/mkfs.c
+69
-0
未找到文件。
fs/btrfs/mkfs.c
0 → 100644
浏览文件 @
06ed4b31
#define _XOPEN_SOURCE 500
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include "kerncompat.h"
#include "radix-tree.h"
#include "ctree.h"
#include "disk-io.h"
int
mkfs
(
int
fd
)
{
struct
ctree_root_info
info
[
2
];
struct
leaf
empty_leaf
;
struct
item
item
;
struct
extent_item
extent_item
;
int
ret
;
memset
(
info
,
0
,
sizeof
(
info
));
info
[
0
].
blocknr
=
16
;
info
[
0
].
objectid
=
1
;
info
[
0
].
tree_root
=
17
;
info
[
0
].
alloc_extent
.
blocknr
=
0
;
info
[
0
].
alloc_extent
.
num_blocks
=
20
;
/* 0-17 are used (inclusive) */
info
[
0
].
alloc_extent
.
num_used
=
18
;
info
[
1
].
blocknr
=
16
;
info
[
1
].
objectid
=
2
;
info
[
1
].
tree_root
=
64
;
info
[
1
].
alloc_extent
.
blocknr
=
64
;
info
[
1
].
alloc_extent
.
num_blocks
=
8
;
info
[
1
].
alloc_extent
.
num_used
=
1
;
ret
=
pwrite
(
fd
,
info
,
sizeof
(
info
),
CTREE_SUPER_INFO_OFFSET
(
CTREE_BLOCKSIZE
));
if
(
ret
!=
sizeof
(
info
))
return
-
1
;
memset
(
&
empty_leaf
,
0
,
sizeof
(
empty_leaf
));
empty_leaf
.
header
.
parentid
=
1
;
empty_leaf
.
header
.
blocknr
=
17
;
ret
=
pwrite
(
fd
,
&
empty_leaf
,
sizeof
(
empty_leaf
),
17
*
CTREE_BLOCKSIZE
);
if
(
ret
!=
sizeof
(
empty_leaf
))
return
-
1
;
empty_leaf
.
header
.
parentid
=
2
;
empty_leaf
.
header
.
blocknr
=
64
;
empty_leaf
.
header
.
nritems
=
2
;
item
.
key
.
objectid
=
0
;
item
.
key
.
offset
=
64
;
item
.
key
.
flags
=
0
;
item
.
offset
=
LEAF_DATA_SIZE
-
sizeof
(
struct
extent_item
);
item
.
size
=
sizeof
(
struct
extent_item
);
extent_item
.
refs
=
1
;
extent_item
.
owner
=
1
;
memcpy
(
empty_leaf
.
items
,
&
item
,
sizeof
(
item
));
memcpy
(
empty_leaf
.
data
+
item
.
offset
,
&
extent_item
,
item
.
size
);
item
.
key
.
objectid
=
64
;
item
.
key
.
offset
=
64
;
item
.
offset
=
LEAF_DATA_SIZE
-
sizeof
(
struct
extent_item
)
*
2
;
extent_item
.
owner
=
2
;
memcpy
(
empty_leaf
.
items
+
1
,
&
item
,
sizeof
(
item
));
memcpy
(
empty_leaf
.
data
+
item
.
offset
,
&
extent_item
,
item
.
size
);
ret
=
pwrite
(
fd
,
&
empty_leaf
,
sizeof
(
empty_leaf
),
64
*
CTREE_BLOCKSIZE
);
if
(
ret
!=
sizeof
(
empty_leaf
))
return
-
1
;
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录