Bug 809495
| Summary: | SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up() | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Steve Dickson <steved> | |
| Component: | kernel | Assignee: | nfs-maint | |
| Status: | CLOSED DUPLICATE | QA Contact: | Filesystem QE <fs-qe> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.3 | CC: | eguan, kzhang | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 809502 (view as bug list) | Environment: | ||
| Last Closed: | 2012-04-04 17:24:02 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 809502 | |||
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release. *** This bug has been marked as a duplicate of bug 809928 *** |
Description of problem: The problem is that for the case of priority queues, we have to assume that __rpc_remove_wait_queue_priority will move new elements from the tk_wait.links lists into the queue->tasks[] list. We therefore cannot use list_for_each_entry_safe() on queue->tasks[], since that will skip these new tasks that __rpc_remove_wait_queue_priority is adding. Without this fix, rpc_wake_up and rpc_wake_up_status will both fail to wake up all functions on priority wait queues, which can result in some nasty hangs. Version-Release number of selected component (if applicable): How reproducible: Sometimes Additional info: Upstream commit: commit 540a0f7584169651f485e8ab67461fcb06934e38 Author: Trond Myklebust <Trond.Myklebust> Date: Mon Mar 19 13:39:35 2012 -0400 SUNRPC: We must not use list_for_each_entry_safe() in rpc_wake_up()