[lkml]   [2009]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 1/5] mmap: don't assume f_op->mmap() doesn't change vma->vm_file

    Hugh Dickins wrote:
    > On Tue, 14 Apr 2009, Tejun Heo wrote:
    >> mmap_region() assumes that vma->vm_file isn't changed by f_op->mmap()
    >> and continues to use cache file after f_op->mmap() returns.
    > It does use "file" again in the unmap_and_free_vma error path
    > (isn't that reasonable? if the ->mmap failed, it shouldn't have
    > mucked with vma; and even if it has, then we'd better not change
    > the current behaviour of which to fput), but I don't see where else.
    > Further down, covering both vma->vm_file previously set and previously
    > unset cases, there is a "file = vma->vm_file;" before file is used.
    > So I think this patch is not necessary - if it is necessary, it's
    > already a bug, because already we switch from /dev/zero to a
    > shmem file there.

    Right, ->mmap() shouldn't modify @vma if it has failed. I was trying
    to clarify that @vma->file may change as the code was a bit confusing
    regarding whether @vma->vm_file is allowed to be substituted or not.
    Hmmmm... how about adding a BUG_ON() or WARN_ON() in the failure path
    to make sure @vma->vm_file hasn't changed?

    Anyways, I'm dropping this patch and updating FUSE mmap implementation
    accordingly. Thanks for the comment.


     \ /
      Last update: 2009-04-15 04:27    [W:0.032 / U:2.540 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site