When the first time pynfs runs after rpc/nfsd startup, always get the warning, Got error: Connection closed Commit 778620364ef5 "sunrpc/cache: make cache flushing more reliable." lets cache_is_expired() checking expired as, return (h->expiry_time < seconds_since_boot()) || (detail->flush_time >= h->last_refresh); The detail->flush_time is equal to h->last_refresh time, when the cache is new created and then do the upcall immediately. So that, the cache will be treated as expired and be cleaned when write_flush(). This patch skips checking the pending cache expired when doing upcall. Signed-off-by: Kinglong Mee <kinglongmee@xxxxxxxxx> --- include/linux/sunrpc/cache.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/include/linux/sunrpc/cache.h b/include/linux/sunrpc/cache.h index 62a60ee..9961c1f 100644 --- a/include/linux/sunrpc/cache.h +++ b/include/linux/sunrpc/cache.h @@ -204,8 +204,11 @@ static inline void cache_put(struct cache_head *h, struct cache_detail *cd) kref_put(&h->ref, cd->cache_put); } -static inline int cache_is_expired(struct cache_detail *detail, struct cache_head *h) +static inline bool cache_is_expired(struct cache_detail *detail, struct cache_head *h) { + if (test_bit(CACHE_PENDING, &h->flags)) + return false; + return (h->expiry_time < seconds_since_boot()) || (detail->flush_time >= h->last_refresh); } -- 2.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html