diff mbox

idmapd: silence pointless EOF warning

Message ID 20130812164144.GC2395@fieldses.org (mailing list archive)
State New, archived
Headers show

Commit Message

J. Bruce Fields Aug. 12, 2013, 4:41 p.m. UTC
From: "J. Bruce Fields" <bfields@redhat.com>

RH bz 831455 has a report that repeatedly mounting and unmounting over
lo can hit this warning in the EOF case.  I suspect that's just
normal--I'm not sure of the details, but probably idmapd gets woken up
to check for an upcall and then the upcall gets yanked away before
idmapd gets a chance to read it.

So just skip the warning in that case.  I also can't see a reason to
reopen.

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
---
 utils/idmapd/idmapd.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Steve Dickson Aug. 19, 2013, 6:26 p.m. UTC | #1
On 12/08/13 12:41, J. Bruce Fields wrote:
> From: "J. Bruce Fields" <bfields@redhat.com>
> 
> RH bz 831455 has a report that repeatedly mounting and unmounting over
> lo can hit this warning in the EOF case.  I suspect that's just
> normal--I'm not sure of the details, but probably idmapd gets woken up
> to check for an upcall and then the upcall gets yanked away before
> idmapd gets a chance to read it.
> 
> So just skip the warning in that case.  I also can't see a reason to
> reopen.
> 
> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Committed... 

steved.

> ---
>  utils/idmapd/idmapd.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
> index beba9c4..cc4ba9a 100644
> --- a/utils/idmapd/idmapd.c
> +++ b/utils/idmapd/idmapd.c
> @@ -511,10 +511,14 @@ nfsdcb(int UNUSED(fd), short which, void *data)
>  	if (which != EV_READ)
>  		goto out;
>  
> -	if ((len = read(ic->ic_fd, buf, sizeof(buf))) <= 0) {
> +	len = read(ic->ic_fd, buf, sizeof(buf));
> +	if (len == 0)
> +		/* No upcall to read; not necessarily a problem: */
> +		return;
> +	if (len < 0) {
>  		xlog_warn("nfsdcb: read(%s) failed: errno %d (%s)",
> -			     ic->ic_path, len?errno:0, 
> -			     len?strerror(errno):"End of File");
> +			     ic->ic_path, errno,
> +			     strerror(errno));
>  		nfsdreopen_one(ic);
>  		return;
>  	}
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c
index beba9c4..cc4ba9a 100644
--- a/utils/idmapd/idmapd.c
+++ b/utils/idmapd/idmapd.c
@@ -511,10 +511,14 @@  nfsdcb(int UNUSED(fd), short which, void *data)
 	if (which != EV_READ)
 		goto out;
 
-	if ((len = read(ic->ic_fd, buf, sizeof(buf))) <= 0) {
+	len = read(ic->ic_fd, buf, sizeof(buf));
+	if (len == 0)
+		/* No upcall to read; not necessarily a problem: */
+		return;
+	if (len < 0) {
 		xlog_warn("nfsdcb: read(%s) failed: errno %d (%s)",
-			     ic->ic_path, len?errno:0, 
-			     len?strerror(errno):"End of File");
+			     ic->ic_path, errno,
+			     strerror(errno));
 		nfsdreopen_one(ic);
 		return;
 	}