ceph: clean up statfs
Avoid unnecessary msgpool. Preallocate reply. Fix use-after-free race. Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#define _FS_CEPH_MON_CLIENT_H
|
||||
|
||||
#include <linux/completion.h>
|
||||
#include <linux/kref.h>
|
||||
#include <linux/rbtree.h>
|
||||
|
||||
#include "messenger.h"
|
||||
@@ -44,13 +45,14 @@ struct ceph_mon_request {
|
||||
* to the caller
|
||||
*/
|
||||
struct ceph_mon_statfs_request {
|
||||
struct kref kref;
|
||||
u64 tid;
|
||||
struct rb_node node;
|
||||
int result;
|
||||
struct ceph_statfs *buf;
|
||||
struct completion completion;
|
||||
unsigned long last_attempt, delay; /* jiffies */
|
||||
struct ceph_msg *request; /* original request */
|
||||
struct ceph_msg *reply; /* and reply */
|
||||
};
|
||||
|
||||
struct ceph_mon_client {
|
||||
@@ -72,7 +74,6 @@ struct ceph_mon_client {
|
||||
|
||||
/* msg pools */
|
||||
struct ceph_msgpool msgpool_subscribe_ack;
|
||||
struct ceph_msgpool msgpool_statfs_reply;
|
||||
struct ceph_msgpool msgpool_auth_reply;
|
||||
|
||||
/* pending statfs requests */
|
||||
|
Reference in New Issue
Block a user