Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:
dlm: rename structs
dlm: add missing kfrees

+113 -98
+106 -95
fs/dlm/config.c
··· 2 2 ******************************************************************************* 3 3 ** 4 4 ** Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. 5 - ** Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. 5 + ** Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. 6 6 ** 7 7 ** This copyrighted material is made available to anyone wishing to use, 8 8 ** modify, copy, or redistribute it subject to the terms and conditions ··· 30 30 31 31 static struct config_group *space_list; 32 32 static struct config_group *comm_list; 33 - static struct comm *local_comm; 33 + static struct dlm_comm *local_comm; 34 34 35 - struct clusters; 36 - struct cluster; 37 - struct spaces; 38 - struct space; 39 - struct comms; 40 - struct comm; 41 - struct nodes; 42 - struct node; 35 + struct dlm_clusters; 36 + struct dlm_cluster; 37 + struct dlm_spaces; 38 + struct dlm_space; 39 + struct dlm_comms; 40 + struct dlm_comm; 41 + struct dlm_nodes; 42 + struct dlm_node; 43 43 44 44 static struct config_group *make_cluster(struct config_group *, const char *); 45 45 static void drop_cluster(struct config_group *, struct config_item *); ··· 68 68 static ssize_t store_node(struct config_item *i, struct configfs_attribute *a, 69 69 const char *buf, size_t len); 70 70 71 - static ssize_t comm_nodeid_read(struct comm *cm, char *buf); 72 - static ssize_t comm_nodeid_write(struct comm *cm, const char *buf, size_t len); 73 - static ssize_t comm_local_read(struct comm *cm, char *buf); 74 - static ssize_t comm_local_write(struct comm *cm, const char *buf, size_t len); 75 - static ssize_t comm_addr_write(struct comm *cm, const char *buf, size_t len); 76 - static ssize_t node_nodeid_read(struct node *nd, char *buf); 77 - static ssize_t node_nodeid_write(struct node *nd, const char *buf, size_t len); 78 - static ssize_t node_weight_read(struct node *nd, char *buf); 79 - static ssize_t node_weight_write(struct node *nd, const char *buf, size_t len); 71 + static ssize_t comm_nodeid_read(struct dlm_comm *cm, char *buf); 72 + static ssize_t comm_nodeid_write(struct dlm_comm *cm, const char *buf, 73 + size_t len); 74 + static ssize_t comm_local_read(struct dlm_comm *cm, char *buf); 75 + static ssize_t comm_local_write(struct dlm_comm *cm, const char *buf, 76 + size_t len); 77 + static ssize_t comm_addr_write(struct dlm_comm *cm, const char *buf, 78 + size_t len); 79 + static ssize_t node_nodeid_read(struct dlm_node *nd, char *buf); 80 + static ssize_t node_nodeid_write(struct dlm_node *nd, const char *buf, 81 + size_t len); 82 + static ssize_t node_weight_read(struct dlm_node *nd, char *buf); 83 + static ssize_t node_weight_write(struct dlm_node *nd, const char *buf, 84 + size_t len); 80 85 81 - struct cluster { 86 + struct dlm_cluster { 82 87 struct config_group group; 83 88 unsigned int cl_tcp_port; 84 89 unsigned int cl_buffer_size; ··· 114 109 115 110 struct cluster_attribute { 116 111 struct configfs_attribute attr; 117 - ssize_t (*show)(struct cluster *, char *); 118 - ssize_t (*store)(struct cluster *, const char *, size_t); 112 + ssize_t (*show)(struct dlm_cluster *, char *); 113 + ssize_t (*store)(struct dlm_cluster *, const char *, size_t); 119 114 }; 120 115 121 - static ssize_t cluster_set(struct cluster *cl, unsigned int *cl_field, 116 + static ssize_t cluster_set(struct dlm_cluster *cl, unsigned int *cl_field, 122 117 int *info_field, int check_zero, 123 118 const char *buf, size_t len) 124 119 { ··· 139 134 } 140 135 141 136 #define CLUSTER_ATTR(name, check_zero) \ 142 - static ssize_t name##_write(struct cluster *cl, const char *buf, size_t len) \ 137 + static ssize_t name##_write(struct dlm_cluster *cl, const char *buf, size_t len) \ 143 138 { \ 144 139 return cluster_set(cl, &cl->cl_##name, &dlm_config.ci_##name, \ 145 140 check_zero, buf, len); \ 146 141 } \ 147 - static ssize_t name##_read(struct cluster *cl, char *buf) \ 142 + static ssize_t name##_read(struct dlm_cluster *cl, char *buf) \ 148 143 { \ 149 144 return snprintf(buf, PAGE_SIZE, "%u\n", cl->cl_##name); \ 150 145 } \ ··· 186 181 187 182 struct comm_attribute { 188 183 struct configfs_attribute attr; 189 - ssize_t (*show)(struct comm *, char *); 190 - ssize_t (*store)(struct comm *, const char *, size_t); 184 + ssize_t (*show)(struct dlm_comm *, char *); 185 + ssize_t (*store)(struct dlm_comm *, const char *, size_t); 191 186 }; 192 187 193 188 static struct comm_attribute comm_attr_nodeid = { ··· 227 222 228 223 struct node_attribute { 229 224 struct configfs_attribute attr; 230 - ssize_t (*show)(struct node *, char *); 231 - ssize_t (*store)(struct node *, const char *, size_t); 225 + ssize_t (*show)(struct dlm_node *, char *); 226 + ssize_t (*store)(struct dlm_node *, const char *, size_t); 232 227 }; 233 228 234 229 static struct node_attribute node_attr_nodeid = { ··· 253 248 NULL, 254 249 }; 255 250 256 - struct clusters { 251 + struct dlm_clusters { 257 252 struct configfs_subsystem subsys; 258 253 }; 259 254 260 - struct spaces { 255 + struct dlm_spaces { 261 256 struct config_group ss_group; 262 257 }; 263 258 264 - struct space { 259 + struct dlm_space { 265 260 struct config_group group; 266 261 struct list_head members; 267 262 struct mutex members_lock; 268 263 int members_count; 269 264 }; 270 265 271 - struct comms { 266 + struct dlm_comms { 272 267 struct config_group cs_group; 273 268 }; 274 269 275 - struct comm { 270 + struct dlm_comm { 276 271 struct config_item item; 277 272 int nodeid; 278 273 int local; ··· 280 275 struct sockaddr_storage *addr[DLM_MAX_ADDR_COUNT]; 281 276 }; 282 277 283 - struct nodes { 278 + struct dlm_nodes { 284 279 struct config_group ns_group; 285 280 }; 286 281 287 - struct node { 282 + struct dlm_node { 288 283 struct config_item item; 289 284 struct list_head list; /* space->members */ 290 285 int nodeid; ··· 377 372 .ct_owner = THIS_MODULE, 378 373 }; 379 374 380 - static struct cluster *to_cluster(struct config_item *i) 375 + static struct dlm_cluster *to_cluster(struct config_item *i) 381 376 { 382 - return i ? container_of(to_config_group(i), struct cluster, group):NULL; 377 + return i ? container_of(to_config_group(i), struct dlm_cluster, group) : 378 + NULL; 383 379 } 384 380 385 - static struct space *to_space(struct config_item *i) 381 + static struct dlm_space *to_space(struct config_item *i) 386 382 { 387 - return i ? container_of(to_config_group(i), struct space, group) : NULL; 383 + return i ? container_of(to_config_group(i), struct dlm_space, group) : 384 + NULL; 388 385 } 389 386 390 - static struct comm *to_comm(struct config_item *i) 387 + static struct dlm_comm *to_comm(struct config_item *i) 391 388 { 392 - return i ? container_of(i, struct comm, item) : NULL; 389 + return i ? container_of(i, struct dlm_comm, item) : NULL; 393 390 } 394 391 395 - static struct node *to_node(struct config_item *i) 392 + static struct dlm_node *to_node(struct config_item *i) 396 393 { 397 - return i ? container_of(i, struct node, item) : NULL; 394 + return i ? container_of(i, struct dlm_node, item) : NULL; 398 395 } 399 396 400 397 static struct config_group *make_cluster(struct config_group *g, 401 398 const char *name) 402 399 { 403 - struct cluster *cl = NULL; 404 - struct spaces *sps = NULL; 405 - struct comms *cms = NULL; 400 + struct dlm_cluster *cl = NULL; 401 + struct dlm_spaces *sps = NULL; 402 + struct dlm_comms *cms = NULL; 406 403 void *gps = NULL; 407 404 408 - cl = kzalloc(sizeof(struct cluster), GFP_KERNEL); 405 + cl = kzalloc(sizeof(struct dlm_cluster), GFP_KERNEL); 409 406 gps = kcalloc(3, sizeof(struct config_group *), GFP_KERNEL); 410 - sps = kzalloc(sizeof(struct spaces), GFP_KERNEL); 411 - cms = kzalloc(sizeof(struct comms), GFP_KERNEL); 407 + sps = kzalloc(sizeof(struct dlm_spaces), GFP_KERNEL); 408 + cms = kzalloc(sizeof(struct dlm_comms), GFP_KERNEL); 412 409 413 410 if (!cl || !gps || !sps || !cms) 414 411 goto fail; ··· 450 443 451 444 static void drop_cluster(struct config_group *g, struct config_item *i) 452 445 { 453 - struct cluster *cl = to_cluster(i); 446 + struct dlm_cluster *cl = to_cluster(i); 454 447 struct config_item *tmp; 455 448 int j; 456 449 ··· 468 461 469 462 static void release_cluster(struct config_item *i) 470 463 { 471 - struct cluster *cl = to_cluster(i); 464 + struct dlm_cluster *cl = to_cluster(i); 472 465 kfree(cl->group.default_groups); 473 466 kfree(cl); 474 467 } 475 468 476 469 static struct config_group *make_space(struct config_group *g, const char *name) 477 470 { 478 - struct space *sp = NULL; 479 - struct nodes *nds = NULL; 471 + struct dlm_space *sp = NULL; 472 + struct dlm_nodes *nds = NULL; 480 473 void *gps = NULL; 481 474 482 - sp = kzalloc(sizeof(struct space), GFP_KERNEL); 475 + sp = kzalloc(sizeof(struct dlm_space), GFP_KERNEL); 483 476 gps = kcalloc(2, sizeof(struct config_group *), GFP_KERNEL); 484 - nds = kzalloc(sizeof(struct nodes), GFP_KERNEL); 477 + nds = kzalloc(sizeof(struct dlm_nodes), GFP_KERNEL); 485 478 486 479 if (!sp || !gps || !nds) 487 480 goto fail; ··· 507 500 508 501 static void drop_space(struct config_group *g, struct config_item *i) 509 502 { 510 - struct space *sp = to_space(i); 503 + struct dlm_space *sp = to_space(i); 511 504 struct config_item *tmp; 512 505 int j; 513 506 ··· 524 517 525 518 static void release_space(struct config_item *i) 526 519 { 527 - struct space *sp = to_space(i); 520 + struct dlm_space *sp = to_space(i); 528 521 kfree(sp->group.default_groups); 529 522 kfree(sp); 530 523 } 531 524 532 525 static struct config_item *make_comm(struct config_group *g, const char *name) 533 526 { 534 - struct comm *cm; 527 + struct dlm_comm *cm; 535 528 536 - cm = kzalloc(sizeof(struct comm), GFP_KERNEL); 529 + cm = kzalloc(sizeof(struct dlm_comm), GFP_KERNEL); 537 530 if (!cm) 538 531 return ERR_PTR(-ENOMEM); 539 532 ··· 546 539 547 540 static void drop_comm(struct config_group *g, struct config_item *i) 548 541 { 549 - struct comm *cm = to_comm(i); 542 + struct dlm_comm *cm = to_comm(i); 550 543 if (local_comm == cm) 551 544 local_comm = NULL; 552 545 dlm_lowcomms_close(cm->nodeid); ··· 557 550 558 551 static void release_comm(struct config_item *i) 559 552 { 560 - struct comm *cm = to_comm(i); 553 + struct dlm_comm *cm = to_comm(i); 561 554 kfree(cm); 562 555 } 563 556 564 557 static struct config_item *make_node(struct config_group *g, const char *name) 565 558 { 566 - struct space *sp = to_space(g->cg_item.ci_parent); 567 - struct node *nd; 559 + struct dlm_space *sp = to_space(g->cg_item.ci_parent); 560 + struct dlm_node *nd; 568 561 569 - nd = kzalloc(sizeof(struct node), GFP_KERNEL); 562 + nd = kzalloc(sizeof(struct dlm_node), GFP_KERNEL); 570 563 if (!nd) 571 564 return ERR_PTR(-ENOMEM); 572 565 ··· 585 578 586 579 static void drop_node(struct config_group *g, struct config_item *i) 587 580 { 588 - struct space *sp = to_space(g->cg_item.ci_parent); 589 - struct node *nd = to_node(i); 581 + struct dlm_space *sp = to_space(g->cg_item.ci_parent); 582 + struct dlm_node *nd = to_node(i); 590 583 591 584 mutex_lock(&sp->members_lock); 592 585 list_del(&nd->list); ··· 598 591 599 592 static void release_node(struct config_item *i) 600 593 { 601 - struct node *nd = to_node(i); 594 + struct dlm_node *nd = to_node(i); 602 595 kfree(nd); 603 596 } 604 597 605 - static struct clusters clusters_root = { 598 + static struct dlm_clusters clusters_root = { 606 599 .subsys = { 607 600 .su_group = { 608 601 .cg_item = { ··· 632 625 static ssize_t show_cluster(struct config_item *i, struct configfs_attribute *a, 633 626 char *buf) 634 627 { 635 - struct cluster *cl = to_cluster(i); 628 + struct dlm_cluster *cl = to_cluster(i); 636 629 struct cluster_attribute *cla = 637 630 container_of(a, struct cluster_attribute, attr); 638 631 return cla->show ? cla->show(cl, buf) : 0; ··· 642 635 struct configfs_attribute *a, 643 636 const char *buf, size_t len) 644 637 { 645 - struct cluster *cl = to_cluster(i); 638 + struct dlm_cluster *cl = to_cluster(i); 646 639 struct cluster_attribute *cla = 647 640 container_of(a, struct cluster_attribute, attr); 648 641 return cla->store ? cla->store(cl, buf, len) : -EINVAL; ··· 651 644 static ssize_t show_comm(struct config_item *i, struct configfs_attribute *a, 652 645 char *buf) 653 646 { 654 - struct comm *cm = to_comm(i); 647 + struct dlm_comm *cm = to_comm(i); 655 648 struct comm_attribute *cma = 656 649 container_of(a, struct comm_attribute, attr); 657 650 return cma->show ? cma->show(cm, buf) : 0; ··· 660 653 static ssize_t store_comm(struct config_item *i, struct configfs_attribute *a, 661 654 const char *buf, size_t len) 662 655 { 663 - struct comm *cm = to_comm(i); 656 + struct dlm_comm *cm = to_comm(i); 664 657 struct comm_attribute *cma = 665 658 container_of(a, struct comm_attribute, attr); 666 659 return cma->store ? cma->store(cm, buf, len) : -EINVAL; 667 660 } 668 661 669 - static ssize_t comm_nodeid_read(struct comm *cm, char *buf) 662 + static ssize_t comm_nodeid_read(struct dlm_comm *cm, char *buf) 670 663 { 671 664 return sprintf(buf, "%d\n", cm->nodeid); 672 665 } 673 666 674 - static ssize_t comm_nodeid_write(struct comm *cm, const char *buf, size_t len) 667 + static ssize_t comm_nodeid_write(struct dlm_comm *cm, const char *buf, 668 + size_t len) 675 669 { 676 670 cm->nodeid = simple_strtol(buf, NULL, 0); 677 671 return len; 678 672 } 679 673 680 - static ssize_t comm_local_read(struct comm *cm, char *buf) 674 + static ssize_t comm_local_read(struct dlm_comm *cm, char *buf) 681 675 { 682 676 return sprintf(buf, "%d\n", cm->local); 683 677 } 684 678 685 - static ssize_t comm_local_write(struct comm *cm, const char *buf, size_t len) 679 + static ssize_t comm_local_write(struct dlm_comm *cm, const char *buf, 680 + size_t len) 686 681 { 687 682 cm->local= simple_strtol(buf, NULL, 0); 688 683 if (cm->local && !local_comm) ··· 692 683 return len; 693 684 } 694 685 695 - static ssize_t comm_addr_write(struct comm *cm, const char *buf, size_t len) 686 + static ssize_t comm_addr_write(struct dlm_comm *cm, const char *buf, size_t len) 696 687 { 697 688 struct sockaddr_storage *addr; 698 689 ··· 714 705 static ssize_t show_node(struct config_item *i, struct configfs_attribute *a, 715 706 char *buf) 716 707 { 717 - struct node *nd = to_node(i); 708 + struct dlm_node *nd = to_node(i); 718 709 struct node_attribute *nda = 719 710 container_of(a, struct node_attribute, attr); 720 711 return nda->show ? nda->show(nd, buf) : 0; ··· 723 714 static ssize_t store_node(struct config_item *i, struct configfs_attribute *a, 724 715 const char *buf, size_t len) 725 716 { 726 - struct node *nd = to_node(i); 717 + struct dlm_node *nd = to_node(i); 727 718 struct node_attribute *nda = 728 719 container_of(a, struct node_attribute, attr); 729 720 return nda->store ? nda->store(nd, buf, len) : -EINVAL; 730 721 } 731 722 732 - static ssize_t node_nodeid_read(struct node *nd, char *buf) 723 + static ssize_t node_nodeid_read(struct dlm_node *nd, char *buf) 733 724 { 734 725 return sprintf(buf, "%d\n", nd->nodeid); 735 726 } 736 727 737 - static ssize_t node_nodeid_write(struct node *nd, const char *buf, size_t len) 728 + static ssize_t node_nodeid_write(struct dlm_node *nd, const char *buf, 729 + size_t len) 738 730 { 739 731 nd->nodeid = simple_strtol(buf, NULL, 0); 740 732 return len; 741 733 } 742 734 743 - static ssize_t node_weight_read(struct node *nd, char *buf) 735 + static ssize_t node_weight_read(struct dlm_node *nd, char *buf) 744 736 { 745 737 return sprintf(buf, "%d\n", nd->weight); 746 738 } 747 739 748 - static ssize_t node_weight_write(struct node *nd, const char *buf, size_t len) 740 + static ssize_t node_weight_write(struct dlm_node *nd, const char *buf, 741 + size_t len) 749 742 { 750 743 nd->weight = simple_strtol(buf, NULL, 0); 751 744 return len; ··· 757 746 * Functions for the dlm to get the info that's been configured 758 747 */ 759 748 760 - static struct space *get_space(char *name) 749 + static struct dlm_space *get_space(char *name) 761 750 { 762 751 struct config_item *i; 763 752 ··· 771 760 return to_space(i); 772 761 } 773 762 774 - static void put_space(struct space *sp) 763 + static void put_space(struct dlm_space *sp) 775 764 { 776 765 config_item_put(&sp->group.cg_item); 777 766 } 778 767 779 - static struct comm *get_comm(int nodeid, struct sockaddr_storage *addr) 768 + static struct dlm_comm *get_comm(int nodeid, struct sockaddr_storage *addr) 780 769 { 781 770 struct config_item *i; 782 - struct comm *cm = NULL; 771 + struct dlm_comm *cm = NULL; 783 772 int found = 0; 784 773 785 774 if (!comm_list) ··· 812 801 return cm; 813 802 } 814 803 815 - static void put_comm(struct comm *cm) 804 + static void put_comm(struct dlm_comm *cm) 816 805 { 817 806 config_item_put(&cm->item); 818 807 } ··· 821 810 int dlm_nodeid_list(char *lsname, int **ids_out, int *ids_count_out, 822 811 int **new_out, int *new_count_out) 823 812 { 824 - struct space *sp; 825 - struct node *nd; 813 + struct dlm_space *sp; 814 + struct dlm_node *nd; 826 815 int i = 0, rv = 0, ids_count = 0, new_count = 0; 827 816 int *ids, *new; 828 817 ··· 885 874 886 875 int dlm_node_weight(char *lsname, int nodeid) 887 876 { 888 - struct space *sp; 889 - struct node *nd; 877 + struct dlm_space *sp; 878 + struct dlm_node *nd; 890 879 int w = -EEXIST; 891 880 892 881 sp = get_space(lsname); ··· 908 897 909 898 int dlm_nodeid_to_addr(int nodeid, struct sockaddr_storage *addr) 910 899 { 911 - struct comm *cm = get_comm(nodeid, NULL); 900 + struct dlm_comm *cm = get_comm(nodeid, NULL); 912 901 if (!cm) 913 902 return -EEXIST; 914 903 if (!cm->addr_count) ··· 920 909 921 910 int dlm_addr_to_nodeid(struct sockaddr_storage *addr, int *nodeid) 922 911 { 923 - struct comm *cm = get_comm(0, addr); 912 + struct dlm_comm *cm = get_comm(0, addr); 924 913 if (!cm) 925 914 return -EEXIST; 926 915 *nodeid = cm->nodeid;
+7 -3
fs/dlm/user.c
··· 527 527 k32buf = (struct dlm_write_request32 *)kbuf; 528 528 kbuf = kmalloc(count + 1 + (sizeof(struct dlm_write_request) - 529 529 sizeof(struct dlm_write_request32)), GFP_KERNEL); 530 - if (!kbuf) 530 + if (!kbuf) { 531 + kfree(k32buf); 531 532 return -ENOMEM; 533 + } 532 534 533 535 if (proc) 534 536 set_bit(DLM_PROC_FLAGS_COMPAT, &proc->flags); ··· 541 539 542 540 /* do we really need this? can a write happen after a close? */ 543 541 if ((kbuf->cmd == DLM_USER_LOCK || kbuf->cmd == DLM_USER_UNLOCK) && 544 - (proc && test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags))) 545 - return -EINVAL; 542 + (proc && test_bit(DLM_PROC_FLAGS_CLOSING, &proc->flags))) { 543 + error = -EINVAL; 544 + goto out_free; 545 + } 546 546 547 547 sigfillset(&allsigs); 548 548 sigprocmask(SIG_BLOCK, &allsigs, &tmpsig);