diff --git a/kmod/src/lock.c b/kmod/src/lock.c index 63213874..9b3eab61 100644 --- a/kmod/src/lock.c +++ b/kmod/src/lock.c @@ -813,6 +813,7 @@ int scoutfs_lock_invalidate_request(struct super_block *sb, u64 net_id, out: if (!lock) { + kfree(ireq); ret = scoutfs_client_lock_response(sb, net_id, nl); BUG_ON(ret); /* lock server doesn't fence timed out client requests */ } diff --git a/kmod/src/net.c b/kmod/src/net.c index 8e7cdb4c..b028d7c8 100644 --- a/kmod/src/net.c +++ b/kmod/src/net.c @@ -525,7 +525,7 @@ static int process_response(struct scoutfs_net_connection *conn, struct super_block *sb = conn->sb; struct message_send *msend; scoutfs_net_response_t resp_func = NULL; - void *resp_data; + void *resp_data = NULL; spin_lock(&conn->lock); @@ -804,7 +804,7 @@ static void scoutfs_net_recv_worker(struct work_struct *work) if (invalid_message(conn, nh)) { scoutfs_inc_counter(sb, net_recv_invalid_message); ret = -EBADMSG; - break; + goto out; } data_len = le16_to_cpu(nh->data_len);