diff options
Diffstat (limited to 'fs/befs/btree.c')
-rw-r--r-- | fs/befs/btree.c | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/fs/befs/btree.c b/fs/befs/btree.c index 74e397db0b8b..a2cd305a993a 100644 --- a/fs/befs/btree.c +++ b/fs/befs/btree.c | |||
@@ -137,7 +137,7 @@ befs_bt_read_super(struct super_block *sb, befs_data_stream * ds, | |||
137 | struct buffer_head *bh = NULL; | 137 | struct buffer_head *bh = NULL; |
138 | befs_disk_btree_super *od_sup = NULL; | 138 | befs_disk_btree_super *od_sup = NULL; |
139 | 139 | ||
140 | befs_debug(sb, "---> befs_btree_read_super()"); | 140 | befs_debug(sb, "---> %s", __func__); |
141 | 141 | ||
142 | bh = befs_read_datastream(sb, ds, 0, NULL); | 142 | bh = befs_read_datastream(sb, ds, 0, NULL); |
143 | 143 | ||
@@ -162,11 +162,11 @@ befs_bt_read_super(struct super_block *sb, befs_data_stream * ds, | |||
162 | goto error; | 162 | goto error; |
163 | } | 163 | } |
164 | 164 | ||
165 | befs_debug(sb, "<--- befs_btree_read_super()"); | 165 | befs_debug(sb, "<--- %s", __func__); |
166 | return BEFS_OK; | 166 | return BEFS_OK; |
167 | 167 | ||
168 | error: | 168 | error: |
169 | befs_debug(sb, "<--- befs_btree_read_super() ERROR"); | 169 | befs_debug(sb, "<--- %s ERROR", __func__); |
170 | return BEFS_ERR; | 170 | return BEFS_ERR; |
171 | } | 171 | } |
172 | 172 | ||
@@ -195,16 +195,16 @@ befs_bt_read_node(struct super_block *sb, befs_data_stream * ds, | |||
195 | { | 195 | { |
196 | uint off = 0; | 196 | uint off = 0; |
197 | 197 | ||
198 | befs_debug(sb, "---> befs_bt_read_node()"); | 198 | befs_debug(sb, "---> %s", __func__); |
199 | 199 | ||
200 | if (node->bh) | 200 | if (node->bh) |
201 | brelse(node->bh); | 201 | brelse(node->bh); |
202 | 202 | ||
203 | node->bh = befs_read_datastream(sb, ds, node_off, &off); | 203 | node->bh = befs_read_datastream(sb, ds, node_off, &off); |
204 | if (!node->bh) { | 204 | if (!node->bh) { |
205 | befs_error(sb, "befs_bt_read_node() failed to read " | 205 | befs_error(sb, "%s failed to read " |
206 | "node at %Lu", node_off); | 206 | "node at %llu", __func__, node_off); |
207 | befs_debug(sb, "<--- befs_bt_read_node() ERROR"); | 207 | befs_debug(sb, "<--- %s ERROR", __func__); |
208 | 208 | ||
209 | return BEFS_ERR; | 209 | return BEFS_ERR; |
210 | } | 210 | } |
@@ -221,7 +221,7 @@ befs_bt_read_node(struct super_block *sb, befs_data_stream * ds, | |||
221 | node->head.all_key_length = | 221 | node->head.all_key_length = |
222 | fs16_to_cpu(sb, node->od_node->all_key_length); | 222 | fs16_to_cpu(sb, node->od_node->all_key_length); |
223 | 223 | ||
224 | befs_debug(sb, "<--- befs_btree_read_node()"); | 224 | befs_debug(sb, "<--- %s", __func__); |
225 | return BEFS_OK; | 225 | return BEFS_OK; |
226 | } | 226 | } |
227 | 227 | ||
@@ -252,7 +252,7 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
252 | befs_off_t node_off; | 252 | befs_off_t node_off; |
253 | int res; | 253 | int res; |
254 | 254 | ||
255 | befs_debug(sb, "---> befs_btree_find() Key: %s", key); | 255 | befs_debug(sb, "---> %s Key: %s", __func__, key); |
256 | 256 | ||
257 | if (befs_bt_read_super(sb, ds, &bt_super) != BEFS_OK) { | 257 | if (befs_bt_read_super(sb, ds, &bt_super) != BEFS_OK) { |
258 | befs_error(sb, | 258 | befs_error(sb, |
@@ -263,7 +263,7 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
263 | this_node = kmalloc(sizeof (befs_btree_node), | 263 | this_node = kmalloc(sizeof (befs_btree_node), |
264 | GFP_NOFS); | 264 | GFP_NOFS); |
265 | if (!this_node) { | 265 | if (!this_node) { |
266 | befs_error(sb, "befs_btree_find() failed to allocate %u " | 266 | befs_error(sb, "befs_btree_find() failed to allocate %zu " |
267 | "bytes of memory", sizeof (befs_btree_node)); | 267 | "bytes of memory", sizeof (befs_btree_node)); |
268 | goto error; | 268 | goto error; |
269 | } | 269 | } |
@@ -274,7 +274,7 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
274 | node_off = bt_super.root_node_ptr; | 274 | node_off = bt_super.root_node_ptr; |
275 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { | 275 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { |
276 | befs_error(sb, "befs_btree_find() failed to read " | 276 | befs_error(sb, "befs_btree_find() failed to read " |
277 | "node at %Lu", node_off); | 277 | "node at %llu", node_off); |
278 | goto error_alloc; | 278 | goto error_alloc; |
279 | } | 279 | } |
280 | 280 | ||
@@ -285,7 +285,7 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
285 | /* if no match, go to overflow node */ | 285 | /* if no match, go to overflow node */ |
286 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { | 286 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { |
287 | befs_error(sb, "befs_btree_find() failed to read " | 287 | befs_error(sb, "befs_btree_find() failed to read " |
288 | "node at %Lu", node_off); | 288 | "node at %llu", node_off); |
289 | goto error_alloc; | 289 | goto error_alloc; |
290 | } | 290 | } |
291 | } | 291 | } |
@@ -298,11 +298,11 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
298 | kfree(this_node); | 298 | kfree(this_node); |
299 | 299 | ||
300 | if (res != BEFS_BT_MATCH) { | 300 | if (res != BEFS_BT_MATCH) { |
301 | befs_debug(sb, "<--- befs_btree_find() Key %s not found", key); | 301 | befs_debug(sb, "<--- %s Key %s not found", __func__, key); |
302 | *value = 0; | 302 | *value = 0; |
303 | return BEFS_BT_NOT_FOUND; | 303 | return BEFS_BT_NOT_FOUND; |
304 | } | 304 | } |
305 | befs_debug(sb, "<--- befs_btree_find() Found key %s, value %Lu", | 305 | befs_debug(sb, "<--- %s Found key %s, value %llu", __func__, |
306 | key, *value); | 306 | key, *value); |
307 | return BEFS_OK; | 307 | return BEFS_OK; |
308 | 308 | ||
@@ -310,7 +310,7 @@ befs_btree_find(struct super_block *sb, befs_data_stream * ds, | |||
310 | kfree(this_node); | 310 | kfree(this_node); |
311 | error: | 311 | error: |
312 | *value = 0; | 312 | *value = 0; |
313 | befs_debug(sb, "<--- befs_btree_find() ERROR"); | 313 | befs_debug(sb, "<--- %s ERROR", __func__); |
314 | return BEFS_ERR; | 314 | return BEFS_ERR; |
315 | } | 315 | } |
316 | 316 | ||
@@ -343,7 +343,7 @@ befs_find_key(struct super_block *sb, befs_btree_node * node, | |||
343 | char *thiskey; | 343 | char *thiskey; |
344 | fs64 *valarray; | 344 | fs64 *valarray; |
345 | 345 | ||
346 | befs_debug(sb, "---> befs_find_key() %s", findkey); | 346 | befs_debug(sb, "---> %s %s", __func__, findkey); |
347 | 347 | ||
348 | *value = 0; | 348 | *value = 0; |
349 | 349 | ||
@@ -355,7 +355,7 @@ befs_find_key(struct super_block *sb, befs_btree_node * node, | |||
355 | 355 | ||
356 | eq = befs_compare_strings(thiskey, keylen, findkey, findkey_len); | 356 | eq = befs_compare_strings(thiskey, keylen, findkey, findkey_len); |
357 | if (eq < 0) { | 357 | if (eq < 0) { |
358 | befs_debug(sb, "<--- befs_find_key() %s not found", findkey); | 358 | befs_debug(sb, "<--- %s %s not found", __func__, findkey); |
359 | return BEFS_BT_NOT_FOUND; | 359 | return BEFS_BT_NOT_FOUND; |
360 | } | 360 | } |
361 | 361 | ||
@@ -373,8 +373,8 @@ befs_find_key(struct super_block *sb, befs_btree_node * node, | |||
373 | findkey_len); | 373 | findkey_len); |
374 | 374 | ||
375 | if (eq == 0) { | 375 | if (eq == 0) { |
376 | befs_debug(sb, "<--- befs_find_key() found %s at %d", | 376 | befs_debug(sb, "<--- %s found %s at %d", |
377 | thiskey, mid); | 377 | __func__, thiskey, mid); |
378 | 378 | ||
379 | *value = fs64_to_cpu(sb, valarray[mid]); | 379 | *value = fs64_to_cpu(sb, valarray[mid]); |
380 | return BEFS_BT_MATCH; | 380 | return BEFS_BT_MATCH; |
@@ -388,7 +388,7 @@ befs_find_key(struct super_block *sb, befs_btree_node * node, | |||
388 | *value = fs64_to_cpu(sb, valarray[mid + 1]); | 388 | *value = fs64_to_cpu(sb, valarray[mid + 1]); |
389 | else | 389 | else |
390 | *value = fs64_to_cpu(sb, valarray[mid]); | 390 | *value = fs64_to_cpu(sb, valarray[mid]); |
391 | befs_debug(sb, "<--- befs_find_key() found %s at %d", thiskey, mid); | 391 | befs_debug(sb, "<--- %s found %s at %d", __func__, thiskey, mid); |
392 | return BEFS_BT_PARMATCH; | 392 | return BEFS_BT_PARMATCH; |
393 | } | 393 | } |
394 | 394 | ||
@@ -428,7 +428,7 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
428 | 428 | ||
429 | uint key_sum = 0; | 429 | uint key_sum = 0; |
430 | 430 | ||
431 | befs_debug(sb, "---> befs_btree_read()"); | 431 | befs_debug(sb, "---> %s", __func__); |
432 | 432 | ||
433 | if (befs_bt_read_super(sb, ds, &bt_super) != BEFS_OK) { | 433 | if (befs_bt_read_super(sb, ds, &bt_super) != BEFS_OK) { |
434 | befs_error(sb, | 434 | befs_error(sb, |
@@ -437,7 +437,7 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
437 | } | 437 | } |
438 | 438 | ||
439 | if ((this_node = kmalloc(sizeof (befs_btree_node), GFP_NOFS)) == NULL) { | 439 | if ((this_node = kmalloc(sizeof (befs_btree_node), GFP_NOFS)) == NULL) { |
440 | befs_error(sb, "befs_btree_read() failed to allocate %u " | 440 | befs_error(sb, "befs_btree_read() failed to allocate %zu " |
441 | "bytes of memory", sizeof (befs_btree_node)); | 441 | "bytes of memory", sizeof (befs_btree_node)); |
442 | goto error; | 442 | goto error; |
443 | } | 443 | } |
@@ -452,7 +452,7 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
452 | kfree(this_node); | 452 | kfree(this_node); |
453 | *value = 0; | 453 | *value = 0; |
454 | *keysize = 0; | 454 | *keysize = 0; |
455 | befs_debug(sb, "<--- befs_btree_read() Tree is EMPTY"); | 455 | befs_debug(sb, "<--- %s Tree is EMPTY", __func__); |
456 | return BEFS_BT_EMPTY; | 456 | return BEFS_BT_EMPTY; |
457 | } else if (res == BEFS_ERR) { | 457 | } else if (res == BEFS_ERR) { |
458 | goto error_alloc; | 458 | goto error_alloc; |
@@ -467,7 +467,8 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
467 | *keysize = 0; | 467 | *keysize = 0; |
468 | *value = 0; | 468 | *value = 0; |
469 | befs_debug(sb, | 469 | befs_debug(sb, |
470 | "<--- befs_btree_read() END of keys at %Lu", | 470 | "<--- %s END of keys at %llu", __func__, |
471 | (unsigned long long) | ||
471 | key_sum + this_node->head.all_key_count); | 472 | key_sum + this_node->head.all_key_count); |
472 | brelse(this_node->bh); | 473 | brelse(this_node->bh); |
473 | kfree(this_node); | 474 | kfree(this_node); |
@@ -478,8 +479,8 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
478 | node_off = this_node->head.right; | 479 | node_off = this_node->head.right; |
479 | 480 | ||
480 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { | 481 | if (befs_bt_read_node(sb, ds, this_node, node_off) != BEFS_OK) { |
481 | befs_error(sb, "befs_btree_read() failed to read " | 482 | befs_error(sb, "%s failed to read node at %llu", |
482 | "node at %Lu", node_off); | 483 | __func__, (unsigned long long)node_off); |
483 | goto error_alloc; | 484 | goto error_alloc; |
484 | } | 485 | } |
485 | } | 486 | } |
@@ -492,11 +493,13 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
492 | 493 | ||
493 | keystart = befs_bt_get_key(sb, this_node, cur_key, &keylen); | 494 | keystart = befs_bt_get_key(sb, this_node, cur_key, &keylen); |
494 | 495 | ||
495 | befs_debug(sb, "Read [%Lu,%d]: keysize %d", node_off, cur_key, keylen); | 496 | befs_debug(sb, "Read [%llu,%d]: keysize %d", |
497 | (long long unsigned int)node_off, (int)cur_key, | ||
498 | (int)keylen); | ||
496 | 499 | ||
497 | if (bufsize < keylen + 1) { | 500 | if (bufsize < keylen + 1) { |
498 | befs_error(sb, "befs_btree_read() keybuf too small (%u) " | 501 | befs_error(sb, "%s keybuf too small (%zu) " |
499 | "for key of size %d", bufsize, keylen); | 502 | "for key of size %d", __func__, bufsize, keylen); |
500 | brelse(this_node->bh); | 503 | brelse(this_node->bh); |
501 | goto error_alloc; | 504 | goto error_alloc; |
502 | }; | 505 | }; |
@@ -506,13 +509,13 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
506 | *keysize = keylen; | 509 | *keysize = keylen; |
507 | keybuf[keylen] = '\0'; | 510 | keybuf[keylen] = '\0'; |
508 | 511 | ||
509 | befs_debug(sb, "Read [%Lu,%d]: Key \"%.*s\", Value %Lu", node_off, | 512 | befs_debug(sb, "Read [%llu,%d]: Key \"%.*s\", Value %llu", node_off, |
510 | cur_key, keylen, keybuf, *value); | 513 | cur_key, keylen, keybuf, *value); |
511 | 514 | ||
512 | brelse(this_node->bh); | 515 | brelse(this_node->bh); |
513 | kfree(this_node); | 516 | kfree(this_node); |
514 | 517 | ||
515 | befs_debug(sb, "<--- befs_btree_read()"); | 518 | befs_debug(sb, "<--- %s", __func__); |
516 | 519 | ||
517 | return BEFS_OK; | 520 | return BEFS_OK; |
518 | 521 | ||
@@ -522,7 +525,7 @@ befs_btree_read(struct super_block *sb, befs_data_stream * ds, | |||
522 | error: | 525 | error: |
523 | *keysize = 0; | 526 | *keysize = 0; |
524 | *value = 0; | 527 | *value = 0; |
525 | befs_debug(sb, "<--- befs_btree_read() ERROR"); | 528 | befs_debug(sb, "<--- %s ERROR", __func__); |
526 | return BEFS_ERR; | 529 | return BEFS_ERR; |
527 | } | 530 | } |
528 | 531 | ||
@@ -547,26 +550,26 @@ befs_btree_seekleaf(struct super_block *sb, befs_data_stream * ds, | |||
547 | befs_off_t * node_off) | 550 | befs_off_t * node_off) |
548 | { | 551 | { |
549 | 552 | ||
550 | befs_debug(sb, "---> befs_btree_seekleaf()"); | 553 | befs_debug(sb, "---> %s", __func__); |
551 | 554 | ||
552 | if (befs_bt_read_node(sb, ds, this_node, *node_off) != BEFS_OK) { | 555 | if (befs_bt_read_node(sb, ds, this_node, *node_off) != BEFS_OK) { |
553 | befs_error(sb, "befs_btree_seekleaf() failed to read " | 556 | befs_error(sb, "%s failed to read " |
554 | "node at %Lu", *node_off); | 557 | "node at %llu", __func__, *node_off); |
555 | goto error; | 558 | goto error; |
556 | } | 559 | } |
557 | befs_debug(sb, "Seekleaf to root node %Lu", *node_off); | 560 | befs_debug(sb, "Seekleaf to root node %llu", *node_off); |
558 | 561 | ||
559 | if (this_node->head.all_key_count == 0 && befs_leafnode(this_node)) { | 562 | if (this_node->head.all_key_count == 0 && befs_leafnode(this_node)) { |
560 | befs_debug(sb, "<--- befs_btree_seekleaf() Tree is EMPTY"); | 563 | befs_debug(sb, "<--- %s Tree is EMPTY", __func__); |
561 | return BEFS_BT_EMPTY; | 564 | return BEFS_BT_EMPTY; |
562 | } | 565 | } |
563 | 566 | ||
564 | while (!befs_leafnode(this_node)) { | 567 | while (!befs_leafnode(this_node)) { |
565 | 568 | ||
566 | if (this_node->head.all_key_count == 0) { | 569 | if (this_node->head.all_key_count == 0) { |
567 | befs_debug(sb, "befs_btree_seekleaf() encountered " | 570 | befs_debug(sb, "%s encountered " |
568 | "an empty interior node: %Lu. Using Overflow " | 571 | "an empty interior node: %llu. Using Overflow " |
569 | "node: %Lu", *node_off, | 572 | "node: %llu", __func__, *node_off, |
570 | this_node->head.overflow); | 573 | this_node->head.overflow); |
571 | *node_off = this_node->head.overflow; | 574 | *node_off = this_node->head.overflow; |
572 | } else { | 575 | } else { |
@@ -574,19 +577,19 @@ befs_btree_seekleaf(struct super_block *sb, befs_data_stream * ds, | |||
574 | *node_off = fs64_to_cpu(sb, valarray[0]); | 577 | *node_off = fs64_to_cpu(sb, valarray[0]); |
575 | } | 578 | } |
576 | if (befs_bt_read_node(sb, ds, this_node, *node_off) != BEFS_OK) { | 579 | if (befs_bt_read_node(sb, ds, this_node, *node_off) != BEFS_OK) { |
577 | befs_error(sb, "befs_btree_seekleaf() failed to read " | 580 | befs_error(sb, "%s failed to read " |
578 | "node at %Lu", *node_off); | 581 | "node at %llu", __func__, *node_off); |
579 | goto error; | 582 | goto error; |
580 | } | 583 | } |
581 | 584 | ||
582 | befs_debug(sb, "Seekleaf to child node %Lu", *node_off); | 585 | befs_debug(sb, "Seekleaf to child node %llu", *node_off); |
583 | } | 586 | } |
584 | befs_debug(sb, "Node %Lu is a leaf node", *node_off); | 587 | befs_debug(sb, "Node %llu is a leaf node", *node_off); |
585 | 588 | ||
586 | return BEFS_OK; | 589 | return BEFS_OK; |
587 | 590 | ||
588 | error: | 591 | error: |
589 | befs_debug(sb, "<--- befs_btree_seekleaf() ERROR"); | 592 | befs_debug(sb, "<--- %s ERROR", __func__); |
590 | return BEFS_ERR; | 593 | return BEFS_ERR; |
591 | } | 594 | } |
592 | 595 | ||