aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/ctree.c8
-rw-r--r--fs/btrfs/ctree.h25
-rw-r--r--fs/btrfs/extent-tree.c8
-rw-r--r--fs/btrfs/file-item.c2
-rw-r--r--fs/btrfs/print-tree.c4
-rw-r--r--fs/btrfs/transaction.c6
6 files changed, 6 insertions, 47 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 39b551564fcf..f31ac843bf2e 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -688,8 +688,6 @@ static int insert_new_root(struct btrfs_trans_handle *trans, struct btrfs_root
688 btrfs_set_header_level(&c->header, level); 688 btrfs_set_header_level(&c->header, level);
689 btrfs_set_header_blocknr(&c->header, t->b_blocknr); 689 btrfs_set_header_blocknr(&c->header, t->b_blocknr);
690 btrfs_set_header_generation(&c->header, trans->transid); 690 btrfs_set_header_generation(&c->header, trans->transid);
691 btrfs_set_header_parentid(&c->header,
692 btrfs_header_parentid(btrfs_buffer_header(root->node)));
693 lower = btrfs_buffer_node(path->nodes[level-1]); 691 lower = btrfs_buffer_node(path->nodes[level-1]);
694 memcpy(c->header.fsid, root->fs_info->disk_super->fsid, 692 memcpy(c->header.fsid, root->fs_info->disk_super->fsid,
695 sizeof(c->header.fsid)); 693 sizeof(c->header.fsid));
@@ -784,8 +782,6 @@ static int split_node(struct btrfs_trans_handle *trans, struct btrfs_root
784 btrfs_set_header_level(&split->header, btrfs_header_level(&c->header)); 782 btrfs_set_header_level(&split->header, btrfs_header_level(&c->header));
785 btrfs_set_header_blocknr(&split->header, split_buffer->b_blocknr); 783 btrfs_set_header_blocknr(&split->header, split_buffer->b_blocknr);
786 btrfs_set_header_generation(&split->header, trans->transid); 784 btrfs_set_header_generation(&split->header, trans->transid);
787 btrfs_set_header_parentid(&split->header,
788 btrfs_header_parentid(btrfs_buffer_header(root->node)));
789 memcpy(split->header.fsid, root->fs_info->disk_super->fsid, 785 memcpy(split->header.fsid, root->fs_info->disk_super->fsid,
790 sizeof(split->header.fsid)); 786 sizeof(split->header.fsid));
791 mid = (c_nritems + 1) / 2; 787 mid = (c_nritems + 1) / 2;
@@ -1145,8 +1141,6 @@ static int split_leaf(struct btrfs_trans_handle *trans, struct btrfs_root
1145 btrfs_set_header_blocknr(&right->header, right_buffer->b_blocknr); 1141 btrfs_set_header_blocknr(&right->header, right_buffer->b_blocknr);
1146 btrfs_set_header_generation(&right->header, trans->transid); 1142 btrfs_set_header_generation(&right->header, trans->transid);
1147 btrfs_set_header_level(&right->header, 0); 1143 btrfs_set_header_level(&right->header, 0);
1148 btrfs_set_header_parentid(&right->header,
1149 btrfs_header_parentid(btrfs_buffer_header(root->node)));
1150 memcpy(right->header.fsid, root->fs_info->disk_super->fsid, 1144 memcpy(right->header.fsid, root->fs_info->disk_super->fsid,
1151 sizeof(right->header.fsid)); 1145 sizeof(right->header.fsid));
1152 if (mid <= slot) { 1146 if (mid <= slot) {
@@ -1237,8 +1231,6 @@ static int split_leaf(struct btrfs_trans_handle *trans, struct btrfs_root
1237 btrfs_set_header_blocknr(&right->header, right_buffer->b_blocknr); 1231 btrfs_set_header_blocknr(&right->header, right_buffer->b_blocknr);
1238 btrfs_set_header_generation(&right->header, trans->transid); 1232 btrfs_set_header_generation(&right->header, trans->transid);
1239 btrfs_set_header_level(&right->header, 0); 1233 btrfs_set_header_level(&right->header, 0);
1240 btrfs_set_header_parentid(&right->header,
1241 btrfs_header_parentid(btrfs_buffer_header(root->node)));
1242 memcpy(right->header.fsid, root->fs_info->disk_super->fsid, 1234 memcpy(right->header.fsid, root->fs_info->disk_super->fsid,
1243 sizeof(right->header.fsid)); 1235 sizeof(right->header.fsid));
1244 btrfs_cpu_key_to_disk(&disk_key, ins_key); 1236 btrfs_cpu_key_to_disk(&disk_key, ins_key);
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index 5103709bb2b9..0ba560f0d2a6 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -60,7 +60,6 @@ struct btrfs_header {
60 u8 fsid[16]; /* FS specific uuid */ 60 u8 fsid[16]; /* FS specific uuid */
61 __le64 blocknr; /* which block this node is supposed to live in */ 61 __le64 blocknr; /* which block this node is supposed to live in */
62 __le64 generation; 62 __le64 generation;
63 __le64 parentid; /* objectid of the tree root */
64 __le16 nritems; 63 __le16 nritems;
65 __le16 flags; 64 __le16 flags;
66 u8 level; 65 u8 level;
@@ -147,7 +146,6 @@ struct btrfs_path {
147 */ 146 */
148struct btrfs_extent_item { 147struct btrfs_extent_item {
149 __le32 refs; 148 __le32 refs;
150 __le64 owner;
151} __attribute__ ((__packed__)); 149} __attribute__ ((__packed__));
152 150
153struct btrfs_inode_timespec { 151struct btrfs_inode_timespec {
@@ -443,16 +441,6 @@ static inline void btrfs_set_timespec_nsec(struct btrfs_inode_timespec *ts,
443 ts->nsec = cpu_to_le32(val); 441 ts->nsec = cpu_to_le32(val);
444} 442}
445 443
446static inline u64 btrfs_extent_owner(struct btrfs_extent_item *ei)
447{
448 return le64_to_cpu(ei->owner);
449}
450
451static inline void btrfs_set_extent_owner(struct btrfs_extent_item *ei, u64 val)
452{
453 ei->owner = cpu_to_le64(val);
454}
455
456static inline u32 btrfs_extent_refs(struct btrfs_extent_item *ei) 444static inline u32 btrfs_extent_refs(struct btrfs_extent_item *ei)
457{ 445{
458 return le32_to_cpu(ei->refs); 446 return le32_to_cpu(ei->refs);
@@ -652,17 +640,6 @@ static inline void btrfs_set_header_generation(struct btrfs_header *h,
652 h->generation = cpu_to_le64(val); 640 h->generation = cpu_to_le64(val);
653} 641}
654 642
655static inline u64 btrfs_header_parentid(struct btrfs_header *h)
656{
657 return le64_to_cpu(h->parentid);
658}
659
660static inline void btrfs_set_header_parentid(struct btrfs_header *h,
661 u64 parentid)
662{
663 h->parentid = cpu_to_le64(parentid);
664}
665
666static inline u16 btrfs_header_nritems(struct btrfs_header *h) 643static inline u16 btrfs_header_nritems(struct btrfs_header *h)
667{ 644{
668 return le16_to_cpu(h->nritems); 645 return le16_to_cpu(h->nritems);
@@ -919,7 +896,7 @@ struct buffer_head *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
919 struct btrfs_root *root); 896 struct btrfs_root *root);
920int btrfs_alloc_extent(struct btrfs_trans_handle *trans, struct btrfs_root 897int btrfs_alloc_extent(struct btrfs_trans_handle *trans, struct btrfs_root
921 *root, u64 num_blocks, u64 search_start, u64 898 *root, u64 num_blocks, u64 search_start, u64
922 search_end, u64 owner, struct btrfs_key *ins); 899 search_end, struct btrfs_key *ins);
923int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, 900int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root,
924 struct buffer_head *buf); 901 struct buffer_head *buf);
925int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root 902int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index efc604eea0b0..be9630df506c 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -157,8 +157,6 @@ static int finish_current_insert(struct btrfs_trans_handle *trans, struct
157 struct btrfs_fs_info *info = extent_root->fs_info; 157 struct btrfs_fs_info *info = extent_root->fs_info;
158 158
159 btrfs_set_extent_refs(&extent_item, 1); 159 btrfs_set_extent_refs(&extent_item, 1);
160 btrfs_set_extent_owner(&extent_item,
161 btrfs_header_parentid(btrfs_buffer_header(extent_root->node)));
162 ins.offset = 1; 160 ins.offset = 1;
163 ins.flags = 0; 161 ins.flags = 0;
164 btrfs_set_key_type(&ins, BTRFS_EXTENT_ITEM_KEY); 162 btrfs_set_key_type(&ins, BTRFS_EXTENT_ITEM_KEY);
@@ -457,7 +455,7 @@ error:
457 */ 455 */
458int btrfs_alloc_extent(struct btrfs_trans_handle *trans, struct btrfs_root 456int btrfs_alloc_extent(struct btrfs_trans_handle *trans, struct btrfs_root
459 *root, u64 num_blocks, u64 search_start, u64 457 *root, u64 num_blocks, u64 search_start, u64
460 search_end, u64 owner, struct btrfs_key *ins) 458 search_end, struct btrfs_key *ins)
461{ 459{
462 int ret; 460 int ret;
463 int pending_ret; 461 int pending_ret;
@@ -467,7 +465,6 @@ int btrfs_alloc_extent(struct btrfs_trans_handle *trans, struct btrfs_root
467 struct btrfs_extent_item extent_item; 465 struct btrfs_extent_item extent_item;
468 466
469 btrfs_set_extent_refs(&extent_item, 1); 467 btrfs_set_extent_refs(&extent_item, 1);
470 btrfs_set_extent_owner(&extent_item, owner);
471 468
472 if (root == extent_root) { 469 if (root == extent_root) {
473 BUG_ON(extent_root->fs_info->current_insert.offset == 0); 470 BUG_ON(extent_root->fs_info->current_insert.offset == 0);
@@ -510,8 +507,7 @@ struct buffer_head *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
510 int ret; 507 int ret;
511 struct buffer_head *buf; 508 struct buffer_head *buf;
512 509
513 ret = btrfs_alloc_extent(trans, root, 1, 0, (unsigned long)-1, 510 ret = btrfs_alloc_extent(trans, root, 1, 0, (unsigned long)-1, &ins);
514 btrfs_header_parentid(btrfs_buffer_header(root->node)), &ins);
515 if (ret) { 511 if (ret) {
516 BUG(); 512 BUG();
517 return NULL; 513 return NULL;
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 2c98b620c594..d9fd7f4d3794 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -19,7 +19,7 @@ int btrfs_alloc_file_extent(struct btrfs_trans_handle *trans,
19 BUG_ON(!path); 19 BUG_ON(!path);
20 btrfs_init_path(path); 20 btrfs_init_path(path);
21 ret = btrfs_alloc_extent(trans, root, num_blocks, hint_block, 21 ret = btrfs_alloc_extent(trans, root, num_blocks, hint_block,
22 (u64)-1, objectid, &ins); 22 (u64)-1, &ins);
23 BUG_ON(ret); 23 BUG_ON(ret);
24 file_key.objectid = objectid; 24 file_key.objectid = objectid;
25 file_key.offset = offset; 25 file_key.offset = offset;
diff --git a/fs/btrfs/print-tree.c b/fs/btrfs/print-tree.c
index 854d47d9bdc9..0732a2fbb23a 100644
--- a/fs/btrfs/print-tree.c
+++ b/fs/btrfs/print-tree.c
@@ -50,8 +50,8 @@ void btrfs_print_leaf(struct btrfs_root *root, struct btrfs_leaf *l)
50 break; 50 break;
51 case BTRFS_EXTENT_ITEM_KEY: 51 case BTRFS_EXTENT_ITEM_KEY:
52 ei = btrfs_item_ptr(l, i, struct btrfs_extent_item); 52 ei = btrfs_item_ptr(l, i, struct btrfs_extent_item);
53 printk("\t\textent data refs %u owner %Lu\n", 53 printk("\t\textent data refs %u\n",
54 btrfs_extent_refs(ei), btrfs_extent_owner(ei)); 54 btrfs_extent_refs(ei));
55 break; 55 break;
56 case BTRFS_STRING_ITEM_KEY: 56 case BTRFS_STRING_ITEM_KEY:
57 printk("\t\titem data %.*s\n", btrfs_item_size(item), 57 printk("\t\titem data %.*s\n", btrfs_item_size(item),
diff --git a/fs/btrfs/transaction.c b/fs/btrfs/transaction.c
index 54978d1bd958..f64c1729b0e1 100644
--- a/fs/btrfs/transaction.c
+++ b/fs/btrfs/transaction.c
@@ -163,7 +163,6 @@ int add_dirty_roots(struct btrfs_trans_handle *trans,
163 int i; 163 int i;
164 int ret; 164 int ret;
165 int err; 165 int err;
166printk("add dirty\n");
167 while(1) { 166 while(1) {
168 ret = radix_tree_gang_lookup_tag(radix, (void **)gang, 0, 167 ret = radix_tree_gang_lookup_tag(radix, (void **)gang, 0,
169 ARRAY_SIZE(gang), 168 ARRAY_SIZE(gang),
@@ -188,7 +187,6 @@ printk("add dirty\n");
188 dirty->commit_root = root->commit_root; 187 dirty->commit_root = root->commit_root;
189 root->commit_root = NULL; 188 root->commit_root = NULL;
190 dirty->root = root; 189 dirty->root = root;
191printk("adding dirty root %Lu gen %Lu blocknr %Lu\n", root->root_key.objectid, root->root_key.offset, dirty->commit_root->b_blocknr);
192 root->root_key.offset = root->fs_info->generation; 190 root->root_key.offset = root->fs_info->generation;
193 btrfs_set_root_blocknr(&root->root_item, 191 btrfs_set_root_blocknr(&root->root_item,
194 root->node->b_blocknr); 192 root->node->b_blocknr);
@@ -199,7 +197,6 @@ printk("adding dirty root %Lu gen %Lu blocknr %Lu\n", root->root_key.objectid, r
199 list_add(&dirty->list, list); 197 list_add(&dirty->list, list);
200 } 198 }
201 } 199 }
202printk("add dirty done\n");
203 return 0; 200 return 0;
204} 201}
205 202
@@ -213,12 +210,10 @@ int drop_dirty_roots(struct btrfs_root *tree_root, struct list_head *list)
213 dirty = list_entry(list->next, struct dirty_root, list); 210 dirty = list_entry(list->next, struct dirty_root, list);
214 list_del_init(&dirty->list); 211 list_del_init(&dirty->list);
215 trans = btrfs_start_transaction(tree_root, 1); 212 trans = btrfs_start_transaction(tree_root, 1);
216printk("drop snapshot root %p, commit_root blocknr %Lu generation %Lu\n", dirty->root, dirty->commit_root->b_blocknr, dirty->snap_key.offset);
217 ret = btrfs_drop_snapshot(trans, dirty->root, 213 ret = btrfs_drop_snapshot(trans, dirty->root,
218 dirty->commit_root); 214 dirty->commit_root);
219 BUG_ON(ret); 215 BUG_ON(ret);
220 216
221printk("del root objectid %Lu, offset %Lu\n", dirty->snap_key.objectid, dirty->snap_key.offset);
222 ret = btrfs_del_root(trans, tree_root, &dirty->snap_key); 217 ret = btrfs_del_root(trans, tree_root, &dirty->snap_key);
223 BUG_ON(ret); 218 BUG_ON(ret);
224 ret = btrfs_end_transaction(trans, tree_root); 219 ret = btrfs_end_transaction(trans, tree_root);
@@ -240,7 +235,6 @@ int btrfs_commit_transaction(struct btrfs_trans_handle *trans,
240 235
241 mutex_lock(&root->fs_info->trans_mutex); 236 mutex_lock(&root->fs_info->trans_mutex);
242 if (trans->transaction->in_commit) { 237 if (trans->transaction->in_commit) {
243printk("already in commit!, waiting\n");
244 cur_trans = trans->transaction; 238 cur_trans = trans->transaction;
245 trans->transaction->use_count++; 239 trans->transaction->use_count++;
246 btrfs_end_transaction(trans, root); 240 btrfs_end_transaction(trans, root);