Skip to contentSkip to conversation

cifs: WARN_ON_ONCE if kernel_sendmsg() returns -ENOSPC

PATCH Applied Suresh Jayaraman 3 participants 3 messages Oct 3, 2012 2 messages not in the archive

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cifs: WARN_ON_ONCE if kernel_sendmsg() returns -ENOSPC

kernel_sendmsg() is less likely to return -ENOSPC and it might be a bug to do so. However, in the past there might have been cases where a -ENOSPC was returned from a low level driver.

Add a WARN_ON_ONCE() to ensure that it is safe to assume that -ENOSPC is no longer returned. This -ENOSPC specific handling will be removed once we are sure it is no longer returned.

---

 fs/cifs/transport.c |    6 ++++++
 1 file changed, 6 insertions(+)
fs/cifs/transport.c +6 -0
index d9b639b..c613fca 100644
@@ -155,6 +155,12 @@ smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec)
 		rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
 				    n_vec - first_vec, total_len);
 		if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
+			/*
+			 * Catch if a low level driver returns -ENOSPC. This
+			 * WARN_ON will be removed by 3.10 if no one reports
+			 * seeing this.
+			 */
+			WARN_ON_ONCE(rc == -ENOSPC);
 			i++;
 			/*
 			 * If blocking send we try 3 times, since each can block

A message that is not in the archive (sent off-list or not yet received): 506C6058.6060008-IBi9RG/[email protected]

Reviewed-by
#2 lore raw
Quoted 34 lines · On Wed, 03 Oct 2012 21:27:12 +0530 Suresh Jayaraman…

kernel_sendmsg() is less likely to return -ENOSPC and it might be a bug to do so. However, in the past there might have been cases where a -ENOSPC was returned from a low level driver.

Add a WARN_ON_ONCE() to ensure that it is safe to assume that -ENOSPC is no longer returned. This -ENOSPC specific handling will be removed once we are sure it is no longer returned.

---

 fs/cifs/transport.c |    6 ++++++
 1 file changed, 6 insertions(+)
fs/cifs/transport.c +6 -1
index d9b639b..c613fca 100644
@@ -155,6 +155,12 @@ smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec)
 		rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
 				    n_vec - first_vec, total_len);
 		if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
+			/*
+			 * Catch if a low level driver returns -ENOSPC. This
+			 * WARN_ON will be removed by 3.10 if no one reports
+			 * seeing this.
+			 */
+			WARN_ON_ONCE(rc == -ENOSPC);
 			i++;
 			/*
 			 * If blocking send we try 3 times, since each can block
--
Quoted 3 lines

To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

LGTM

A message that is not in the archive (sent off-list or not yet received): 20121003122417.51c52f31-9yPaYZwiELC+kQycOl6kW4xkIHaj4LzF@public.gmane.org

Applied
#4 lore raw

merged into cifs-2.6.git

Quoted 44 lines · Jeff Layton
Quoted 34 lines · On Wed, 03 Oct 2012 21:27:12 +0530 Suresh Jayaraman…

kernel_sendmsg() is less likely to return -ENOSPC and it might be a bug to do so. However, in the past there might have been cases where a -ENOSPC was returned from a low level driver.

Add a WARN_ON_ONCE() to ensure that it is safe to assume that -ENOSPC is no longer returned. This -ENOSPC specific handling will be removed once we are sure it is no longer returned.

---

 fs/cifs/transport.c |    6 ++++++
 1 file changed, 6 insertions(+)
fs/cifs/transport.c +6 -1
index d9b639b..c613fca 100644
@@ -155,6 +155,12 @@ smb_sendv(struct TCP_Server_Info *server, struct kvec *iov, int n_vec)
              rc = kernel_sendmsg(ssocket, &smb_msg, &iov[first_vec],
                                  n_vec - first_vec, total_len);
              if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
+                     /*
+                      * Catch if a low level driver returns -ENOSPC. This
+                      * WARN_ON will be removed by 3.10 if no one reports
+                      * seeing this.
+                      */
+                     WARN_ON_ONCE(rc == -ENOSPC);
                      i++;
                      /*
                       * If blocking send we try 3 times, since each can block
--
Quoted 3 lines

To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

LGTM

Signature · 3 lines
Thanks,

Steve