Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 372cd7de authored by Andy Grover's avatar Andy Grover
Browse files

RDS: Do not set op_active in r_m_copy_from_user().



Do not allocate sgs for data for 0-length datagrams

Set data.op_active in rds_sendmsg() instead of
rds_message_copy_from_user().

Signed-off-by: default avatarAndy Grover <andy.grover@oracle.com>
parent 5b2366bd
Loading
Loading
Loading
Loading
+0 −2
Original line number Original line Diff line number Diff line
@@ -330,8 +330,6 @@ int rds_message_copy_from_user(struct rds_message *rm, struct iovec *first_iov,
			sg++;
			sg++;
	}
	}


	rm->data.op_active = 1;

out:
out:
	return ret;
	return ret;
}
}
+8 −5
Original line number Original line Diff line number Diff line
@@ -970,11 +970,14 @@ int rds_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
		goto out;
		goto out;
	}
	}


	/* Attach data to the rm */
	if (payload_len) {
		rm->data.op_sg = rds_message_alloc_sgs(rm, ceil(payload_len, PAGE_SIZE));
		rm->data.op_sg = rds_message_alloc_sgs(rm, ceil(payload_len, PAGE_SIZE));
	/* XXX fix this to not allocate memory */
		ret = rds_message_copy_from_user(rm, msg->msg_iov, payload_len);
		ret = rds_message_copy_from_user(rm, msg->msg_iov, payload_len);
		if (ret)
		if (ret)
			goto out;
			goto out;
	}
	rm->data.op_active = 1;


	rm->m_daddr = daddr;
	rm->m_daddr = daddr;