Index: mysys/my_handler_errors.h
===================================================================
--- mysys/my_handler_errors.h	(revision 25784)
+++ mysys/my_handler_errors.h	(revision 25785)
@@ -64,6 +64,7 @@
   "File too short; Expected more data in file",
   "Read page with wrong checksum",
   "Too many active concurrent transactions",
-  "Row is not visible by the current transaction"
+  "Row is not visible by the current transaction",
+  "Disk full"
 };
 
Index: include/my_base.h
===================================================================
--- include/my_base.h	(revision 25784)
+++ include/my_base.h	(revision 25785)
@@ -446,7 +446,8 @@
 #define HA_ERR_WRONG_CRC	  176	 /* Wrong CRC on page */
 #define HA_ERR_ROW_NOT_VISIBLE    177
 #define HA_ERR_TOO_MANY_CONCURRENT_TRXS 178 /*Too many active concurrent transactions */
-#define HA_ERR_LAST               178    /* Copy of last error nr */
+#define HA_ERR_DISK_FULL     179
+#define HA_ERR_LAST               179    /* Copy of last error nr */
 
 /* Number of different errors */
 #define HA_ERR_ERRORS            (HA_ERR_LAST - HA_ERR_FIRST + 1)
Index: sql/handler.cc
===================================================================
--- sql/handler.cc	(revision 25784)
+++ sql/handler.cc	(revision 25785)
@@ -342,6 +342,7 @@
   SETMSG(HA_ERR_AUTOINC_READ_FAILED,    ER(ER_AUTOINC_READ_FAILED));
   SETMSG(HA_ERR_AUTOINC_ERANGE,         ER(ER_WARN_DATA_OUT_OF_RANGE));
   SETMSG(HA_ERR_TOO_MANY_CONCURRENT_TRXS, ER(ER_TOO_MANY_CONCURRENT_TRXS));
+  SETMSG(HA_ERR_DISK_FULL,         ER(ER_DISK_FULL));
 
   /* Register the error messages for use with my_error(). */
   return my_error_register(errmsgs, HA_ERR_FIRST, HA_ERR_LAST);
@@ -2678,6 +2679,9 @@
   case ENOENT:
     textno=ER_FILE_NOT_FOUND;
     break;
+  case HA_ERR_DISK_FULL:
+    textno=ER_DISK_FULL;
+    break;
   case HA_ERR_KEY_NOT_FOUND:
   case HA_ERR_NO_ACTIVE_RECORD:
   case HA_ERR_END_OF_FILE:
