Apply anonymous SF patch #441229.

  Previously, f.read() and f.readlines() checked for
  errors on their file object and possibly raised an
  IOError, but f.readline() didn't. This patch makes
  f.readline() behave like the others.

Note that I've added a call to clearerr() since the other calls to
ferror() include that too.

I have no way to test this code. :-)
diff --git a/Objects/fileobject.c b/Objects/fileobject.c
index e01c439..946d41c 100644
--- a/Objects/fileobject.c
+++ b/Objects/fileobject.c
@@ -847,6 +847,12 @@
 		if (c == '\n')
 			break;
 		if (c == EOF) {
+			if (ferror(fp)) {
+				PyErr_SetFromErrno(PyExc_IOError);
+				clearerr(fp);
+				Py_DECREF(v);
+				return NULL;
+			}
 			clearerr(fp);
 			if (PyErr_CheckSignals()) {
 				Py_DECREF(v);