Browse Source

ceph: fix leak of monc mutex

Fix leak of monc mutex on ENOMEM or bad fsid when receiving new mon map.
Audited all other users.

Signed-off-by: Sage Weil <sage@newdream.net>
Sage Weil 15 năm trước cách đây
mục cha
commit
d4a780ce88
1 tập tin đã thay đổi với 3 bổ sung2 xóa
  1. 3 2
      fs/ceph/mon_client.c

+ 3 - 2
fs/ceph/mon_client.c

@@ -320,17 +320,18 @@ static void ceph_monc_handle_map(struct ceph_mon_client *monc,
 	if (IS_ERR(monmap)) {
 		pr_err("problem decoding monmap, %d\n",
 		       (int)PTR_ERR(monmap));
-		return;
+		goto out;
 	}
 
 	if (ceph_check_fsid(monc->client, &monmap->fsid) < 0) {
 		kfree(monmap);
-		return;
+		goto out;
 	}
 
 	client->monc.monmap = monmap;
 	kfree(old);
 
+out:
 	mutex_unlock(&monc->mutex);
 	wake_up(&client->mount_wq);
 }