From a9861183f49769c70f7e635eb6e2601d0d5cbdb5 Mon Sep 17 00:00:00 2001 From: Carsten Otte Date: Fri, 3 Feb 2012 15:37:14 -0800 Subject: [PATCH] --- yaml --- r: 287214 b: refs/heads/master c: 99f02ef1f18631eb0a4e0ea0a3d56878dbcb4b90 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/filemap_xip.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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;