Message ID | 20130812164144.GC2395@fieldses.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 --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; }