[readdir] using last_error to convey lack of space

This commit is contained in:
Olga Kornievskaia 2012-03-12 13:48:43 -04:00
parent 3d57b26922
commit 2e1df56572

View file

@ -381,7 +381,9 @@ static int readdir_add_dots(
case 0:
if (entry_buf_len < entry_len + 2) {
status = ERROR_BUFFER_OVERFLOW;
dprintf(1, "not enough room for '.' entry.\n");
dprintf(1, "not enough room for '.' entry. received %d need %d\n",
entry_buf_len, entry_len + 2);
args->query_reply_len = entry_len + 2;
goto out;
}
@ -409,7 +411,9 @@ static int readdir_add_dots(
case COOKIE_DOT:
if (entry_buf_len < entry_len + 3) {
status = ERROR_BUFFER_OVERFLOW;
dprintf(1, "not enough room for '..' entry.\n");
dprintf(1, "not enough room for '..' entry. received %d need %d\n",
entry_buf_len, entry_len);
args->query_reply_len = entry_len + 2;
goto out;
}
/* XXX: this skips '..' when listing root fh */
@ -608,6 +612,10 @@ out:
case ERROR_NO_MORE_FILES:
dprintf(1, "ERROR_NO_MORE_FILES.\n");
break;
case ERROR_BUFFER_OVERFLOW:
upcall->last_error = status;
status = ERROR_SUCCESS;
break;
default:
dprintf(1, "error code %d.\n", status);
break;