diff options
author | NeilBrown <neilb@suse.de> | 2022-03-30 11:48:37 +1100 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2022-03-29 22:15:46 -0400 |
commit | eb07d5a4da041fd2e30e386e5fd12d23bb31cf9e (patch) | |
tree | 08d161fda19bae91adc563d9ee8e609b2a21a499 /fs/file_table.c | |
parent | b243874f6f9568b2daf1a00e9222cacdc15e159c (diff) | |
download | linux-eb07d5a4da041fd2e30e386e5fd12d23bb31cf9e.tar.gz linux-eb07d5a4da041fd2e30e386e5fd12d23bb31cf9e.tar.bz2 linux-eb07d5a4da041fd2e30e386e5fd12d23bb31cf9e.zip |
SUNRPC: handle malloc failure in ->request_prepare
If ->request_prepare() detects an error, it sets ->rq_task->tk_status.
This is easy for callers to ignore.
The only caller is xprt_request_enqueue_receive() and it does ignore the
error, as does call_encode() which calls it. This can result in a
request being queued to receive a reply without an allocated receive buffer.
So instead of setting rq_task->tk_status, return an error, and store in
->tk_status only in call_encode();
The call to xprt_request_enqueue_receive() is now earlier in
call_encode(), where the error can still be handled.
Signed-off-by: NeilBrown <neilb@suse.de>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/file_table.c')
0 files changed, 0 insertions, 0 deletions