  		set_fs(oldfs);
  		dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n",
  			(unsigned long long) conn->session->sid, conn->cid,
-@@ -478,7 +487,11 @@ static int tx_ddigest(struct iscsi_cmnd
+@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd
  	iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest);
  	iov.iov_len = rest;
  

 
 	blk_finish_plug(&plug);
diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
--- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c	2016-09-25 19:45:01.774641057 +0530
+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c	2016-09-25 19:47:59.666474094 +0530
@@ -89,13 +89,21 @@ static void iet_state_change(struct sock
 	target->nthread_info.old_state_change(sk);
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
+static void iet_data_ready(struct sock *sk)
+#else
 static void iet_data_ready(struct sock *sk, int len)
+#endif    
 {
 	struct iscsi_conn *conn = sk->sk_user_data;
 	struct iscsi_target *target = conn->session->target;
 
 	nthread_wakeup(target);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
+	target->nthread_info.old_data_ready(sk);
+#else
 	target->nthread_info.old_data_ready(sk, len);
+#endif
 }
 
 /*
@@ -140,8 +148,14 @@ static void iet_socket_bind(struct iscsi
 	target->nthread_info.old_state_change = conn->sock->sk->sk_state_change;
 	conn->sock->sk->sk_state_change = iet_state_change;
 
+#if 0//LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
+	target->nthread_info.old_data_ready = (void (*) (struct sock *, int )) \
+						conn->sock->sk->sk_data_ready;
+	conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready;
+#else

 	write_unlock_bh(&conn->sock->sk->sk_callback_lock);
 
diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c
--- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c	2017-01-19 20:19:27.276504928 -0800
+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c	2017-01-19 20:32:22.979988634 -0800
@@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume
 /* Generate a MD5 hash of the target IQN and LUN number */
 static void gen_scsiid(struct iet_volume *volume)
