diff options
Diffstat (limited to 'fs/ceph/super.c')
| -rw-r--r-- | fs/ceph/super.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/fs/ceph/super.c b/fs/ceph/super.c index 7c663d9b9f81..4e0bee240b9d 100644 --- a/fs/ceph/super.c +++ b/fs/ceph/super.c | |||
| @@ -669,9 +669,17 @@ static void ceph_destroy_client(struct ceph_client *client) | |||
| 669 | 669 | ||
| 670 | /* unmount */ | 670 | /* unmount */ |
| 671 | ceph_mdsc_stop(&client->mdsc); | 671 | ceph_mdsc_stop(&client->mdsc); |
| 672 | ceph_monc_stop(&client->monc); | ||
| 673 | ceph_osdc_stop(&client->osdc); | 672 | ceph_osdc_stop(&client->osdc); |
| 674 | 673 | ||
| 674 | /* | ||
| 675 | * make sure mds and osd connections close out before destroying | ||
| 676 | * the auth module, which is needed to free those connections' | ||
| 677 | * ceph_authorizers. | ||
| 678 | */ | ||
| 679 | ceph_msgr_flush(); | ||
| 680 | |||
| 681 | ceph_monc_stop(&client->monc); | ||
| 682 | |||
| 675 | ceph_adjust_min_caps(-client->min_caps); | 683 | ceph_adjust_min_caps(-client->min_caps); |
| 676 | 684 | ||
| 677 | ceph_debugfs_client_cleanup(client); | 685 | ceph_debugfs_client_cleanup(client); |
| @@ -738,7 +746,7 @@ static struct dentry *open_root_dentry(struct ceph_client *client, | |||
| 738 | dout("open_root_inode opening '%s'\n", path); | 746 | dout("open_root_inode opening '%s'\n", path); |
| 739 | req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_GETATTR, USE_ANY_MDS); | 747 | req = ceph_mdsc_create_request(mdsc, CEPH_MDS_OP_GETATTR, USE_ANY_MDS); |
| 740 | if (IS_ERR(req)) | 748 | if (IS_ERR(req)) |
| 741 | return ERR_PTR(PTR_ERR(req)); | 749 | return ERR_CAST(req); |
| 742 | req->r_path1 = kstrdup(path, GFP_NOFS); | 750 | req->r_path1 = kstrdup(path, GFP_NOFS); |
| 743 | req->r_ino1.ino = CEPH_INO_ROOT; | 751 | req->r_ino1.ino = CEPH_INO_ROOT; |
| 744 | req->r_ino1.snap = CEPH_NOSNAP; | 752 | req->r_ino1.snap = CEPH_NOSNAP; |
