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

Commit 9e45dd73 authored by Mike Christie's avatar Mike Christie Committed by James Bottomley
Browse files

[SCSI] iscsi_tcp: support PF_MEMALLOC/__GFP_MEMALLOC



This patch has software iscsi use PF_MEMALLOC/__GFP_MEMALLOC
to be able to better support swap over iscsi disks similar to
what was added for nbd.

Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 1fc2b00f
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -370,17 +370,24 @@ static inline int iscsi_sw_tcp_xmit_qlen(struct iscsi_conn *conn)
static int iscsi_sw_tcp_pdu_xmit(struct iscsi_task *task)
{
	struct iscsi_conn *conn = task->conn;
	int rc;
	unsigned long pflags = current->flags;
	int rc = 0;

	current->flags |= PF_MEMALLOC;

	while (iscsi_sw_tcp_xmit_qlen(conn)) {
		rc = iscsi_sw_tcp_xmit(conn);
		if (rc == 0)
			return -EAGAIN;
		if (rc == 0) {
			rc = -EAGAIN;
			break;
		}
		if (rc < 0)
			return rc;
			break;
		rc = 0;
	}

	return 0;
	tsk_restore_flags(current, pflags, PF_MEMALLOC);
	return rc;
}

/*
@@ -665,6 +672,7 @@ iscsi_sw_tcp_conn_bind(struct iscsi_cls_session *cls_session,
	sk->sk_reuse = SK_CAN_REUSE;
	sk->sk_sndtimeo = 15 * HZ; /* FIXME: make it configurable */
	sk->sk_allocation = GFP_ATOMIC;
	sk_set_memalloc(sk);

	iscsi_sw_tcp_conn_set_callbacks(conn);
	tcp_sw_conn->sendpage = tcp_sw_conn->sock->ops->sendpage;