]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net/rds: reset op_nents when zerocopy page pin fails
authorAllison Henderson <achender@kernel.org>
Tue, 5 May 2026 23:43:36 +0000 (16:43 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 23 May 2026 11:05:02 +0000 (13:05 +0200)
commit0bbbff00a15b1df2cac9014d6cf4b6890f473353
tree27baa8b6a3e170b38bb67b883a407c86a7ab88f8
parent7f4c55acaa03fc616b526624abbb83db3e045bce
net/rds: reset op_nents when zerocopy page pin fails

commit e174929793195e0cd6a4adb0cad731b39f9019b4 upstream.

When iov_iter_get_pages2() fails in rds_message_zcopy_from_user(),
the pinned pages are released with put_page(), and
rm->data.op_mmp_znotifier is cleared.  But we fail to properly
clear rm->data.op_nents.

Later when rds_message_purge() is called from rds_sendmsg() the
cleanup loop iterates over the incorrectly non zero number of
op_nents and frees them again.

Fix this by properly resetting op_nents when it should be in
rds_message_zcopy_from_user().

Fixes: 0cebaccef3ac ("rds: zerocopy Tx support.")
Signed-off-by: Allison Henderson <achender@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260505234336.2132721-1-achender@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/rds/message.c