Bläddra i källkod

RDS: make sure all sgs alloced are initialized

rds_message_alloc_sgs() now returns correctly-initialized
sg lists, so calleds need not do this themselves.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Andy Grover 15 år sedan
förälder
incheckning
f4dd96f7b2
2 ändrade filer med 2 tillägg och 3 borttagningar
  1. 1 1
      net/rds/message.c
  2. 1 2
      net/rds/rdma.c

+ 1 - 1
net/rds/message.c

@@ -249,7 +249,7 @@ struct scatterlist *rds_message_alloc_sgs(struct rds_message *rm, int nents)
 	WARN_ON(rm->m_used_sgs + nents > rm->m_total_sgs);
 
 	sg_ret = &sg_first[rm->m_used_sgs];
-
+	sg_init_table(sg_ret, nents);
 	rm->m_used_sgs += nents;
 
 	return sg_ret;

+ 1 - 2
net/rds/rdma.c

@@ -534,14 +534,13 @@ static int rds_rdma_prepare(struct rds_message *rm,
 		goto out;
 	}
 
-	op->r_sg = rds_message_alloc_sgs(rm, nr_pages);
 	op->r_write = !!(args->flags & RDS_RDMA_READWRITE);
 	op->r_fence = !!(args->flags & RDS_RDMA_FENCE);
 	op->r_notify = !!(args->flags & RDS_RDMA_NOTIFY_ME);
 	op->r_active = 1;
 	op->r_recverr = rs->rs_recverr;
 	WARN_ON(!nr_pages);
-	sg_init_table(op->r_sg, nr_pages);
+	op->r_sg = rds_message_alloc_sgs(rm, nr_pages);
 
 	if (op->r_notify || op->r_recverr) {
 		/* We allocate an uninitialized notifier here, because