소스 검색

SUNRPC: remove BUG_ON in xdr_shrink_bufhead

Replace bounds checking BUG_ON() with a WARN_ON_ONCE() and resetting
the requested len to the max.

Signed-off-by: Weston Andros Adamson <dros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Weston Andros Adamson 13 년 전
부모
커밋
18e624ad03
1개의 변경된 파일4개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      net/sunrpc/xdr.c

+ 4 - 1
net/sunrpc/xdr.c

@@ -318,7 +318,10 @@ xdr_shrink_bufhead(struct xdr_buf *buf, size_t len)
 
 
 	tail = buf->tail;
 	tail = buf->tail;
 	head = buf->head;
 	head = buf->head;
-	BUG_ON (len > head->iov_len);
+
+	WARN_ON_ONCE(len > head->iov_len);
+	if (len > head->iov_len)
+		len = head->iov_len;
 
 
 	/* Shift the tail first */
 	/* Shift the tail first */
 	if (tail->iov_len != 0) {
 	if (tail->iov_len != 0) {