diff --git a/[refs] b/[refs] index 68685f282489..049fd35f6141 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 82b3f2a7171731cce62f25058d25afb91a14710c +refs/heads/master: 99f02ef1f18631eb0a4e0ea0a3d56878dbcb4b90 diff --git a/trunk/mm/filemap_xip.c b/trunk/mm/filemap_xip.c index f91b2f687343..a4eb31132229 100644 --- a/trunk/mm/filemap_xip.c +++ b/trunk/mm/filemap_xip.c @@ -263,7 +263,12 @@ static int xip_file_fault(struct vm_area_struct *vma, struct vm_fault *vmf) xip_pfn); if (err == -ENOMEM) return VM_FAULT_OOM; - BUG_ON(err); + /* + * err == -EBUSY is fine, we've raced against another thread + * that faulted-in the same page + */ + if (err != -EBUSY) + BUG_ON(err); return VM_FAULT_NOPAGE; } else { int err, ret = VM_FAULT_OOM;