[LU-5291] Failure to clear ft_flags leads to mmap_sem deadlocks Created: 03/Jul/14 Updated: 13/Jul/15 Resolved: 05/Dec/14 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.6.0 |
| Fix Version/s: | Lustre 2.7.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Patrick Farrell (Inactive) | Assignee: | Jinshan Xiong (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | patch | ||
| Issue Links: |
|
||||||||
| Severity: | 3 | ||||||||
| Rank (Obsolete): | 14760 | ||||||||
| Description |
|
After adding the patch for We believe we've identified the reason: In ll_fault0, the 'fault' struct is mostly cleared before the call to ll_fault0 will then consume the ft_flags field. If it has the This is a problem when VM_FAULT_RETRY is in ft_flags: Incorrectly returning this flag from ll_fault means the mmap semaphore Sample debug output... This is the VM_FAULT_RETRY flag returned with EAGAIN, which is fine and expected, but then the same flags are returned with ERESTARTSYS [which came from earlier than filemap_fault], and so the semaphore is not upped in do_page_fault: Credit, as for |
| Comments |
| Comment by Patrick Farrell (Inactive) [ 03/Jul/14 ] |
| Comment by Patrick Farrell (Inactive) [ 07/Aug/14 ] |
|
Patch is landed, this should be closed. |
| Comment by Jodi Levi (Inactive) [ 05/Dec/14 ] |
|
Patch landed to Master. |