Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
f6dbff55
Commit
f6dbff55
authored
Dec 13, 2007
by
Chris Mason
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Btrfs: Reorder extent back refs to differentiate btree blocks from file data
Signed-off-by:
Chris Mason
<
chris.mason@oracle.com
>
parent
6caab489
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
10 additions
and
10 deletions
+10
-10
fs/btrfs/ctree.h
fs/btrfs/ctree.h
+2
-2
fs/btrfs/extent-tree.c
fs/btrfs/extent-tree.c
+8
-8
No files found.
fs/btrfs/ctree.h
View file @
f6dbff55
...
@@ -37,11 +37,12 @@ extern struct kmem_cache *btrfs_path_cachep;
...
@@ -37,11 +37,12 @@ extern struct kmem_cache *btrfs_path_cachep;
#define BTRFS_MAGIC "_B2RfS_M"
#define BTRFS_MAGIC "_B2RfS_M"
#define BTRFS_MAX_LEVEL 8
#define BTRFS_ROOT_TREE_OBJECTID 1ULL
#define BTRFS_ROOT_TREE_OBJECTID 1ULL
#define BTRFS_EXTENT_TREE_OBJECTID 2ULL
#define BTRFS_EXTENT_TREE_OBJECTID 2ULL
#define BTRFS_FS_TREE_OBJECTID 3ULL
#define BTRFS_FS_TREE_OBJECTID 3ULL
#define BTRFS_ROOT_TREE_DIR_OBJECTID 4ULL
#define BTRFS_ROOT_TREE_DIR_OBJECTID 4ULL
#define BTRFS_FIRST_FREE_OBJECTID
5
ULL
#define BTRFS_FIRST_FREE_OBJECTID
256
ULL
/*
/*
* we can actually store much bigger names, but lets not confuse the rest
* we can actually store much bigger names, but lets not confuse the rest
...
@@ -107,7 +108,6 @@ struct btrfs_header {
...
@@ -107,7 +108,6 @@ struct btrfs_header {
u8
level
;
u8
level
;
}
__attribute__
((
__packed__
));
}
__attribute__
((
__packed__
));
#define BTRFS_MAX_LEVEL 8
#define BTRFS_NODEPTRS_PER_BLOCK(r) (((r)->nodesize - \
#define BTRFS_NODEPTRS_PER_BLOCK(r) (((r)->nodesize - \
sizeof(struct btrfs_header)) / \
sizeof(struct btrfs_header)) / \
sizeof(struct btrfs_key_ptr))
sizeof(struct btrfs_key_ptr))
...
...
fs/btrfs/extent-tree.c
View file @
f6dbff55
...
@@ -520,13 +520,13 @@ static int lookup_extent_backref(struct btrfs_trans_handle *trans,
...
@@ -520,13 +520,13 @@ static int lookup_extent_backref(struct btrfs_trans_handle *trans,
*
*
* When a tree block is created, back references are inserted:
* When a tree block is created, back references are inserted:
*
*
* (root->root_key.objectid, trans->transid or zero, l
owest_key_objectid, level
)
* (root->root_key.objectid, trans->transid or zero, l
evel, lowest_key_objectid
)
*
*
* When a tree block is cow'd in a reference counted root,
* When a tree block is cow'd in a reference counted root,
* new back references are added for all the blocks it points to.
* new back references are added for all the blocks it points to.
* These are of the form (trans->transid will have increased since creation):
* These are of the form (trans->transid will have increased since creation):
*
*
* (root->root_key.objectid, trans->transid, l
owest_key_objectid, level
)
* (root->root_key.objectid, trans->transid, l
evel, lowest_key_objectid
)
*
*
* Because the lowest_key_objectid and the level are just hints
* Because the lowest_key_objectid and the level are just hints
* they are not used when backrefs are deleted. When a backref is deleted:
* they are not used when backrefs are deleted. When a backref is deleted:
...
@@ -702,7 +702,7 @@ int btrfs_inc_root_ref(struct btrfs_trans_handle *trans,
...
@@ -702,7 +702,7 @@ int btrfs_inc_root_ref(struct btrfs_trans_handle *trans,
}
}
return
btrfs_inc_extent_ref
(
trans
,
root
,
root
->
node
->
start
,
return
btrfs_inc_extent_ref
(
trans
,
root
,
root
->
node
->
start
,
root
->
node
->
len
,
owner_objectid
,
root
->
node
->
len
,
owner_objectid
,
generation
,
key_objectid
,
level
);
generation
,
level
,
key_objectid
);
}
}
int
btrfs_inc_ref
(
struct
btrfs_trans_handle
*
trans
,
struct
btrfs_root
*
root
,
int
btrfs_inc_ref
(
struct
btrfs_trans_handle
*
trans
,
struct
btrfs_root
*
root
,
...
@@ -750,8 +750,8 @@ int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root,
...
@@ -750,8 +750,8 @@ int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root,
ret
=
btrfs_inc_extent_ref
(
trans
,
root
,
bytenr
,
ret
=
btrfs_inc_extent_ref
(
trans
,
root
,
bytenr
,
btrfs_level_size
(
root
,
level
-
1
),
btrfs_level_size
(
root
,
level
-
1
),
root
->
root_key
.
objectid
,
root
->
root_key
.
objectid
,
trans
->
transid
,
key
.
objectid
,
trans
->
transid
,
level
-
1
);
level
-
1
,
key
.
objectid
);
if
(
ret
)
{
if
(
ret
)
{
faili
=
i
;
faili
=
i
;
goto
fail
;
goto
fail
;
...
@@ -1063,8 +1063,8 @@ static int finish_current_insert(struct btrfs_trans_handle *trans, struct
...
@@ -1063,8 +1063,8 @@ static int finish_current_insert(struct btrfs_trans_handle *trans, struct
}
}
err
=
btrfs_insert_extent_backref
(
trans
,
extent_root
,
path
,
err
=
btrfs_insert_extent_backref
(
trans
,
extent_root
,
path
,
start
,
extent_root
->
root_key
.
objectid
,
start
,
extent_root
->
root_key
.
objectid
,
0
,
btrfs_disk_key_objectid
(
&
first
)
,
0
,
level
,
level
);
btrfs_disk_key_objectid
(
&
first
)
);
BUG_ON
(
err
);
BUG_ON
(
err
);
free_extent_buffer
(
eb
);
free_extent_buffer
(
eb
);
}
}
...
@@ -1640,7 +1640,7 @@ struct extent_buffer *__btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
...
@@ -1640,7 +1640,7 @@ struct extent_buffer *__btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
ret
=
btrfs_alloc_extent
(
trans
,
root
,
blocksize
,
ret
=
btrfs_alloc_extent
(
trans
,
root
,
blocksize
,
root_objectid
,
ref_generation
,
root_objectid
,
ref_generation
,
first_objectid
,
level
,
empty_size
,
hint
,
level
,
first_objectid
,
empty_size
,
hint
,
(
u64
)
-
1
,
&
ins
,
0
);
(
u64
)
-
1
,
&
ins
,
0
);
if
(
ret
)
{
if
(
ret
)
{
BUG_ON
(
ret
>
0
);
BUG_ON
(
ret
>
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment