Re: possible bug using async_xor() call in ops_run_post_xor()
From: tirumalareddy marri <hidden>
Date: 2008-07-27 23:19:23
Dan, You right. async_xor() wait for (tx != NULL). Thanks, Marri ----- Original Message ---- From: Dan Williams <redacted> To: tirumalareddy marri <redacted> Cc: <redacted> Sent: Friday, July 25, 2008 12:47:27 PM Subject: Re: possible bug using async_xor() call in ops_run_post_xor() On Fri, Jul 25, 2008 at 11:45 AM, tirumalareddy marri [off-list ref] wrote:
I am looking at async_xor() usage and found that if async_xor() returns null because of device->device_prep_dma_xor() <async_xor.c> failed to get slot. This might cause failure of stripe creation . Which would cause data corruption in RAID-5 at high data rates. OR Data integrity is guaranteed because ops_complete_write() will not be called in the event of device->device_prep_dma_xor() failed to get slot and returned NULL ?
Hi Marri, ops_complete_write will be called regardless of whether NULL is returned. If async_xor returns NULL it simply indicates to the caller that the operation was completed synchronously. In current mainline async_xor will poll for a descriptor so the driver must take care to ensure forward progress. -- Dan -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html