hc
2024-09-20 cf4ce59b3b70238352c7f1729f0f7223214828ad
kernel/fs/btrfs/tests/inode-tests.c
....@@ -33,8 +33,7 @@
3333 key.type = BTRFS_EXTENT_DATA_KEY;
3434 key.offset = start;
3535
36
- setup_items_for_insert(root, &path, &key, &value_len, value_len,
37
- value_len + sizeof(struct btrfs_item), 1);
36
+ setup_items_for_insert(root, &path, &key, &value_len, 1);
3837 fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
3938 btrfs_set_file_extent_generation(leaf, fi, 1);
4039 btrfs_set_file_extent_type(leaf, fi, type);
....@@ -64,8 +63,7 @@
6463 key.type = BTRFS_INODE_ITEM_KEY;
6564 key.offset = 0;
6665
67
- setup_items_for_insert(root, &path, &key, &value_len, value_len,
68
- value_len + sizeof(struct btrfs_item), 1);
66
+ setup_items_for_insert(root, &path, &key, &value_len, 1);
6967 }
7068
7169 /*
....@@ -226,9 +224,11 @@
226224 u64 offset;
227225 int ret = -ENOMEM;
228226
227
+ test_msg("running btrfs_get_extent tests");
228
+
229229 inode = btrfs_new_test_inode();
230230 if (!inode) {
231
- test_err("couldn't allocate inode");
231
+ test_std_err(TEST_ALLOC_INODE);
232232 return ret;
233233 }
234234
....@@ -239,34 +239,29 @@
239239
240240 fs_info = btrfs_alloc_dummy_fs_info(nodesize, sectorsize);
241241 if (!fs_info) {
242
- test_err("couldn't allocate dummy fs info");
242
+ test_std_err(TEST_ALLOC_FS_INFO);
243243 goto out;
244244 }
245245
246246 root = btrfs_alloc_dummy_root(fs_info);
247247 if (IS_ERR(root)) {
248
- test_err("couldn't allocate root");
248
+ test_std_err(TEST_ALLOC_ROOT);
249249 goto out;
250250 }
251251
252252 root->node = alloc_dummy_extent_buffer(fs_info, nodesize);
253253 if (!root->node) {
254
- test_err("couldn't allocate dummy buffer");
254
+ test_std_err(TEST_ALLOC_ROOT);
255255 goto out;
256256 }
257257
258
- /*
259
- * We will just free a dummy node if it's ref count is 2 so we need an
260
- * extra ref so our searches don't accidentally release our page.
261
- */
262
- extent_buffer_get(root->node);
263258 btrfs_set_header_nritems(root->node, 0);
264259 btrfs_set_header_level(root->node, 0);
265260 ret = -EINVAL;
266261
267262 /* First with no extents */
268263 BTRFS_I(inode)->root = root;
269
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, sectorsize, 0);
264
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, sectorsize);
270265 if (IS_ERR(em)) {
271266 em = NULL;
272267 test_err("got an error when we shouldn't have");
....@@ -286,7 +281,7 @@
286281 */
287282 setup_file_extents(root, sectorsize);
288283
289
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, (u64)-1, 0);
284
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, (u64)-1);
290285 if (IS_ERR(em)) {
291286 test_err("got an error when we shouldn't have");
292287 goto out;
....@@ -308,7 +303,7 @@
308303 offset = em->start + em->len;
309304 free_extent_map(em);
310305
311
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
306
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
312307 if (IS_ERR(em)) {
313308 test_err("got an error when we shouldn't have");
314309 goto out;
....@@ -336,7 +331,7 @@
336331 offset = em->start + em->len;
337332 free_extent_map(em);
338333
339
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
334
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
340335 if (IS_ERR(em)) {
341336 test_err("got an error when we shouldn't have");
342337 goto out;
....@@ -359,7 +354,7 @@
359354 free_extent_map(em);
360355
361356 /* Regular extent */
362
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
357
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
363358 if (IS_ERR(em)) {
364359 test_err("got an error when we shouldn't have");
365360 goto out;
....@@ -387,7 +382,7 @@
387382 free_extent_map(em);
388383
389384 /* The next 3 are split extents */
390
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
385
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
391386 if (IS_ERR(em)) {
392387 test_err("got an error when we shouldn't have");
393388 goto out;
....@@ -416,7 +411,7 @@
416411 offset = em->start + em->len;
417412 free_extent_map(em);
418413
419
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
414
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
420415 if (IS_ERR(em)) {
421416 test_err("got an error when we shouldn't have");
422417 goto out;
....@@ -438,7 +433,7 @@
438433 offset = em->start + em->len;
439434 free_extent_map(em);
440435
441
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
436
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
442437 if (IS_ERR(em)) {
443438 test_err("got an error when we shouldn't have");
444439 goto out;
....@@ -472,7 +467,7 @@
472467 free_extent_map(em);
473468
474469 /* Prealloc extent */
475
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
470
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
476471 if (IS_ERR(em)) {
477472 test_err("got an error when we shouldn't have");
478473 goto out;
....@@ -501,7 +496,7 @@
501496 free_extent_map(em);
502497
503498 /* The next 3 are a half written prealloc extent */
504
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
499
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
505500 if (IS_ERR(em)) {
506501 test_err("got an error when we shouldn't have");
507502 goto out;
....@@ -531,7 +526,7 @@
531526 offset = em->start + em->len;
532527 free_extent_map(em);
533528
534
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
529
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
535530 if (IS_ERR(em)) {
536531 test_err("got an error when we shouldn't have");
537532 goto out;
....@@ -564,7 +559,7 @@
564559 offset = em->start + em->len;
565560 free_extent_map(em);
566561
567
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
562
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
568563 if (IS_ERR(em)) {
569564 test_err("got an error when we shouldn't have");
570565 goto out;
....@@ -599,7 +594,7 @@
599594 free_extent_map(em);
600595
601596 /* Now for the compressed extent */
602
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
597
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
603598 if (IS_ERR(em)) {
604599 test_err("got an error when we shouldn't have");
605600 goto out;
....@@ -633,7 +628,7 @@
633628 free_extent_map(em);
634629
635630 /* Split compressed extent */
636
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
631
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
637632 if (IS_ERR(em)) {
638633 test_err("got an error when we shouldn't have");
639634 goto out;
....@@ -668,7 +663,7 @@
668663 offset = em->start + em->len;
669664 free_extent_map(em);
670665
671
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
666
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
672667 if (IS_ERR(em)) {
673668 test_err("got an error when we shouldn't have");
674669 goto out;
....@@ -695,7 +690,7 @@
695690 offset = em->start + em->len;
696691 free_extent_map(em);
697692
698
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
693
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
699694 if (IS_ERR(em)) {
700695 test_err("got an error when we shouldn't have");
701696 goto out;
....@@ -730,8 +725,7 @@
730725 free_extent_map(em);
731726
732727 /* A hole between regular extents but no hole extent */
733
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset + 6,
734
- sectorsize, 0);
728
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset + 6, sectorsize);
735729 if (IS_ERR(em)) {
736730 test_err("got an error when we shouldn't have");
737731 goto out;
....@@ -758,7 +752,7 @@
758752 offset = em->start + em->len;
759753 free_extent_map(em);
760754
761
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, SZ_4M, 0);
755
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, SZ_4M);
762756 if (IS_ERR(em)) {
763757 test_err("got an error when we shouldn't have");
764758 goto out;
....@@ -791,7 +785,7 @@
791785 offset = em->start + em->len;
792786 free_extent_map(em);
793787
794
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize, 0);
788
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, offset, sectorsize);
795789 if (IS_ERR(em)) {
796790 test_err("got an error when we shouldn't have");
797791 goto out;
....@@ -833,9 +827,11 @@
833827 struct extent_map *em = NULL;
834828 int ret = -ENOMEM;
835829
830
+ test_msg("running hole first btrfs_get_extent test");
831
+
836832 inode = btrfs_new_test_inode();
837833 if (!inode) {
838
- test_err("couldn't allocate inode");
834
+ test_std_err(TEST_ALLOC_INODE);
839835 return ret;
840836 }
841837
....@@ -845,23 +841,22 @@
845841
846842 fs_info = btrfs_alloc_dummy_fs_info(nodesize, sectorsize);
847843 if (!fs_info) {
848
- test_err("couldn't allocate dummy fs info");
844
+ test_std_err(TEST_ALLOC_FS_INFO);
849845 goto out;
850846 }
851847
852848 root = btrfs_alloc_dummy_root(fs_info);
853849 if (IS_ERR(root)) {
854
- test_err("couldn't allocate root");
850
+ test_std_err(TEST_ALLOC_ROOT);
855851 goto out;
856852 }
857853
858854 root->node = alloc_dummy_extent_buffer(fs_info, nodesize);
859855 if (!root->node) {
860
- test_err("couldn't allocate dummy buffer");
856
+ test_std_err(TEST_ALLOC_ROOT);
861857 goto out;
862858 }
863859
864
- extent_buffer_get(root->node);
865860 btrfs_set_header_nritems(root->node, 0);
866861 btrfs_set_header_level(root->node, 0);
867862 BTRFS_I(inode)->root = root;
....@@ -874,7 +869,7 @@
874869 insert_inode_item_key(root);
875870 insert_extent(root, sectorsize, sectorsize, sectorsize, 0, sectorsize,
876871 sectorsize, BTRFS_FILE_EXTENT_REG, 0, 1);
877
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, 2 * sectorsize, 0);
872
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, 0, 2 * sectorsize);
878873 if (IS_ERR(em)) {
879874 test_err("got an error when we shouldn't have");
880875 goto out;
....@@ -896,8 +891,7 @@
896891 }
897892 free_extent_map(em);
898893
899
- em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, sectorsize,
900
- 2 * sectorsize, 0);
894
+ em = btrfs_get_extent(BTRFS_I(inode), NULL, 0, sectorsize, 2 * sectorsize);
901895 if (IS_ERR(em)) {
902896 test_err("got an error when we shouldn't have");
903897 goto out;
....@@ -934,30 +928,31 @@
934928 struct btrfs_root *root = NULL;
935929 int ret = -ENOMEM;
936930
931
+ test_msg("running outstanding_extents tests");
932
+
937933 inode = btrfs_new_test_inode();
938934 if (!inode) {
939
- test_err("couldn't allocate inode");
935
+ test_std_err(TEST_ALLOC_INODE);
940936 return ret;
941937 }
942938
943939 fs_info = btrfs_alloc_dummy_fs_info(nodesize, sectorsize);
944940 if (!fs_info) {
945
- test_err("couldn't allocate dummy fs info");
941
+ test_std_err(TEST_ALLOC_FS_INFO);
946942 goto out;
947943 }
948944
949945 root = btrfs_alloc_dummy_root(fs_info);
950946 if (IS_ERR(root)) {
951
- test_err("couldn't allocate root");
947
+ test_std_err(TEST_ALLOC_ROOT);
952948 goto out;
953949 }
954950
955951 BTRFS_I(inode)->root = root;
956
- btrfs_test_inode_set_ops(inode);
957952
958953 /* [BTRFS_MAX_EXTENT_SIZE] */
959
- ret = btrfs_set_extent_delalloc(inode, 0, BTRFS_MAX_EXTENT_SIZE - 1, 0,
960
- NULL, 0);
954
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode), 0,
955
+ BTRFS_MAX_EXTENT_SIZE - 1, 0, NULL);
961956 if (ret) {
962957 test_err("btrfs_set_extent_delalloc returned %d", ret);
963958 goto out;
....@@ -970,9 +965,9 @@
970965 }
971966
972967 /* [BTRFS_MAX_EXTENT_SIZE][sectorsize] */
973
- ret = btrfs_set_extent_delalloc(inode, BTRFS_MAX_EXTENT_SIZE,
968
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode), BTRFS_MAX_EXTENT_SIZE,
974969 BTRFS_MAX_EXTENT_SIZE + sectorsize - 1,
975
- 0, NULL, 0);
970
+ 0, NULL);
976971 if (ret) {
977972 test_err("btrfs_set_extent_delalloc returned %d", ret);
978973 goto out;
....@@ -988,7 +983,7 @@
988983 ret = clear_extent_bit(&BTRFS_I(inode)->io_tree,
989984 BTRFS_MAX_EXTENT_SIZE >> 1,
990985 (BTRFS_MAX_EXTENT_SIZE >> 1) + sectorsize - 1,
991
- EXTENT_DELALLOC | EXTENT_DIRTY |
986
+ EXTENT_DELALLOC | EXTENT_DELALLOC_NEW |
992987 EXTENT_UPTODATE, 0, 0, NULL);
993988 if (ret) {
994989 test_err("clear_extent_bit returned %d", ret);
....@@ -1002,10 +997,10 @@
1002997 }
1003998
1004999 /* [BTRFS_MAX_EXTENT_SIZE][sectorsize] */
1005
- ret = btrfs_set_extent_delalloc(inode, BTRFS_MAX_EXTENT_SIZE >> 1,
1000
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode), BTRFS_MAX_EXTENT_SIZE >> 1,
10061001 (BTRFS_MAX_EXTENT_SIZE >> 1)
10071002 + sectorsize - 1,
1008
- 0, NULL, 0);
1003
+ 0, NULL);
10091004 if (ret) {
10101005 test_err("btrfs_set_extent_delalloc returned %d", ret);
10111006 goto out;
....@@ -1020,10 +1015,10 @@
10201015 /*
10211016 * [BTRFS_MAX_EXTENT_SIZE+sectorsize][sectorsize HOLE][BTRFS_MAX_EXTENT_SIZE+sectorsize]
10221017 */
1023
- ret = btrfs_set_extent_delalloc(inode,
1018
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode),
10241019 BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize,
10251020 (BTRFS_MAX_EXTENT_SIZE << 1) + 3 * sectorsize - 1,
1026
- 0, NULL, 0);
1021
+ 0, NULL);
10271022 if (ret) {
10281023 test_err("btrfs_set_extent_delalloc returned %d", ret);
10291024 goto out;
....@@ -1038,9 +1033,9 @@
10381033 /*
10391034 * [BTRFS_MAX_EXTENT_SIZE+sectorsize][sectorsize][BTRFS_MAX_EXTENT_SIZE+sectorsize]
10401035 */
1041
- ret = btrfs_set_extent_delalloc(inode,
1036
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode),
10421037 BTRFS_MAX_EXTENT_SIZE + sectorsize,
1043
- BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1, 0, NULL, 0);
1038
+ BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1, 0, NULL);
10441039 if (ret) {
10451040 test_err("btrfs_set_extent_delalloc returned %d", ret);
10461041 goto out;
....@@ -1056,7 +1051,7 @@
10561051 ret = clear_extent_bit(&BTRFS_I(inode)->io_tree,
10571052 BTRFS_MAX_EXTENT_SIZE + sectorsize,
10581053 BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1,
1059
- EXTENT_DIRTY | EXTENT_DELALLOC |
1054
+ EXTENT_DELALLOC | EXTENT_DELALLOC_NEW |
10601055 EXTENT_UPTODATE, 0, 0, NULL);
10611056 if (ret) {
10621057 test_err("clear_extent_bit returned %d", ret);
....@@ -1073,9 +1068,9 @@
10731068 * Refill the hole again just for good measure, because I thought it
10741069 * might fail and I'd rather satisfy my paranoia at this point.
10751070 */
1076
- ret = btrfs_set_extent_delalloc(inode,
1071
+ ret = btrfs_set_extent_delalloc(BTRFS_I(inode),
10771072 BTRFS_MAX_EXTENT_SIZE + sectorsize,
1078
- BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1, 0, NULL, 0);
1073
+ BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1, 0, NULL);
10791074 if (ret) {
10801075 test_err("btrfs_set_extent_delalloc returned %d", ret);
10811076 goto out;
....@@ -1089,7 +1084,7 @@
10891084
10901085 /* Empty */
10911086 ret = clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
1092
- EXTENT_DIRTY | EXTENT_DELALLOC |
1087
+ EXTENT_DELALLOC | EXTENT_DELALLOC_NEW |
10931088 EXTENT_UPTODATE, 0, 0, NULL);
10941089 if (ret) {
10951090 test_err("clear_extent_bit returned %d", ret);
....@@ -1105,7 +1100,7 @@
11051100 out:
11061101 if (ret)
11071102 clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
1108
- EXTENT_DIRTY | EXTENT_DELALLOC |
1103
+ EXTENT_DELALLOC | EXTENT_DELALLOC_NEW |
11091104 EXTENT_UPTODATE, 0, 0, NULL);
11101105 iput(inode);
11111106 btrfs_free_dummy_root(root);
....@@ -1117,17 +1112,16 @@
11171112 {
11181113 int ret;
11191114
1115
+ test_msg("running inode tests");
1116
+
11201117 set_bit(EXTENT_FLAG_COMPRESSED, &compressed_only);
11211118 set_bit(EXTENT_FLAG_PREALLOC, &prealloc_only);
11221119
1123
- test_msg("running btrfs_get_extent tests");
11241120 ret = test_btrfs_get_extent(sectorsize, nodesize);
11251121 if (ret)
11261122 return ret;
1127
- test_msg("running hole first btrfs_get_extent test");
11281123 ret = test_hole_first(sectorsize, nodesize);
11291124 if (ret)
11301125 return ret;
1131
- test_msg("running outstanding_extents tests");
11321126 return test_extent_accounting(sectorsize, nodesize);
11331127 }