[readdir] using last_error to convey lack of space
This commit is contained in:
parent
3d57b26922
commit
2e1df56572
1 changed files with 10 additions and 2 deletions
|
|
@ -381,7 +381,9 @@ static int readdir_add_dots(
|
||||||
case 0:
|
case 0:
|
||||||
if (entry_buf_len < entry_len + 2) {
|
if (entry_buf_len < entry_len + 2) {
|
||||||
status = ERROR_BUFFER_OVERFLOW;
|
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;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -409,7 +411,9 @@ static int readdir_add_dots(
|
||||||
case COOKIE_DOT:
|
case COOKIE_DOT:
|
||||||
if (entry_buf_len < entry_len + 3) {
|
if (entry_buf_len < entry_len + 3) {
|
||||||
status = ERROR_BUFFER_OVERFLOW;
|
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;
|
goto out;
|
||||||
}
|
}
|
||||||
/* XXX: this skips '..' when listing root fh */
|
/* XXX: this skips '..' when listing root fh */
|
||||||
|
|
@ -608,6 +612,10 @@ out:
|
||||||
case ERROR_NO_MORE_FILES:
|
case ERROR_NO_MORE_FILES:
|
||||||
dprintf(1, "ERROR_NO_MORE_FILES.\n");
|
dprintf(1, "ERROR_NO_MORE_FILES.\n");
|
||||||
break;
|
break;
|
||||||
|
case ERROR_BUFFER_OVERFLOW:
|
||||||
|
upcall->last_error = status;
|
||||||
|
status = ERROR_SUCCESS;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
dprintf(1, "error code %d.\n", status);
|
dprintf(1, "error code %d.\n", status);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue