Be very careful that you don't do
if(request_valid(x))
{
memcpy_tofs(....)
as the paging of the process could sleep and cause the data to be copied
from the new task I think. It might need
if(request_valid(x))
{
memcpy_tofs(....)
if(!request_valid(x))
memset(..,0,...)
}
Alan