RE: bug in COW no page fault?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Because then we lock the page instead of the i_mmap_sem.  The code in mm/memory.c isn't /that/ hard to understand, is it?
________________________________________
From: Jared Hulbert [jaredeh@xxxxxxxxx]
Sent: January 29, 2016 2:12 PM
To: Wilcox, Matthew R
Cc: linux-fsdevel@xxxxxxxxxxxxxxx; ross.zwisler@xxxxxxxxxxxxxxx
Subject: Re: bug in COW no page fault?

Which page?  The unmatched call for i_mmap_lock_read() is only called
if(!page).  Ahh, are we locking for the cow_page?  Okay, then why
don't we lock when page != NULL in the COW case?

On Fri, Jan 29, 2016 at 1:53 PM, Wilcox, Matthew R
<matthew.r.wilcox@xxxxxxxxx> wrote:
> Because we need to hold the i_mmap_sem until the page is inserted into the page tables to avoid racing with truncate.  Therefore it is unlocked by the MM code.
>
> Did you try this patch?  It should have BUGged immediately that you hit this case.  If not, you have insufficient CONFIG_DEBUG enabled.
>
> ________________________________________
> From: Jared Hulbert [jaredeh@xxxxxxxxx]
> Sent: January 29, 2016 1:38 PM
> To: linux-fsdevel@xxxxxxxxxxxxxxx; Wilcox, Matthew R; ross.zwisler@xxxxxxxxxxxxxxx
> Subject: DAX: bug in COW no page fault?
>
> Why isn't this required?
>
> diff --git a/fs/dax.c b/fs/dax.c
> index a7f77e1..30f2abe 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -416,6 +416,7 @@ int __dax_fault(struct vm_area_struct *vma, struct vm_fault
>                                 error = -EIO;
>                                 goto out;
>                         }
> +                       i_mmap_unlock_read(mapping);
>                 }
>                 return VM_FAULT_LOCKED;
>         }
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux