소스 검색

sunrpc/cache: change cache_defer_req to return -ve error, not boolean.

As "cache_defer_req" does not sound like a predicate, having it return
a boolean value can be confusing.  It is more consistent to return
0 for success and negative for error.

Exactly what error code to return is not important as we don't
differentiate between reasons why the request wasn't deferred,
we only care about whether it was deferred or not.

Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
NeilBrown 16 년 전
부모
커밋
9e4c6379a6
1개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. 5 5
      net/sunrpc/cache.c

+ 5 - 5
net/sunrpc/cache.c

@@ -255,7 +255,7 @@ int cache_check(struct cache_detail *detail,
 	}
 	}
 
 
 	if (rv == -EAGAIN) {
 	if (rv == -EAGAIN) {
-		if (cache_defer_req(rqstp, h) == 0) {
+		if (cache_defer_req(rqstp, h) < 0) {
 			/* Request is not deferred */
 			/* Request is not deferred */
 			rv = cache_is_valid(detail, h);
 			rv = cache_is_valid(detail, h);
 			if (rv == -EAGAIN)
 			if (rv == -EAGAIN)
@@ -511,11 +511,11 @@ static int cache_defer_req(struct cache_req *req, struct cache_head *item)
 		 * or continue and drop the oldest below
 		 * or continue and drop the oldest below
 		 */
 		 */
 		if (net_random()&1)
 		if (net_random()&1)
-			return 0;
+			return -ENOMEM;
 	}
 	}
 	dreq = req->defer(req);
 	dreq = req->defer(req);
 	if (dreq == NULL)
 	if (dreq == NULL)
-		return 0;
+		return -ENOMEM;
 
 
 	dreq->item = item;
 	dreq->item = item;
 
 
@@ -545,9 +545,9 @@ static int cache_defer_req(struct cache_req *req, struct cache_head *item)
 	if (!test_bit(CACHE_PENDING, &item->flags)) {
 	if (!test_bit(CACHE_PENDING, &item->flags)) {
 		/* must have just been validated... */
 		/* must have just been validated... */
 		cache_revisit_request(item);
 		cache_revisit_request(item);
-		return 0;
+		return -EAGAIN;
 	}
 	}
-	return 1;
+	return 0;
 }
 }
 
 
 static void cache_revisit_request(struct cache_head *item)
 static void cache_revisit_request(struct cache_head *item)