20 Jul, 2007

1 commit

  • Nonlinear mappings are (AFAIKS) simply a virtual memory concept that encodes
    the virtual address -> file offset differently from linear mappings.

    ->populate is a layering violation because the filesystem/pagecache code
    should need to know anything about the virtual memory mapping. The hitch here
    is that the ->nopage handler didn't pass down enough information (ie. pgoff).
    But it is more logical to pass pgoff rather than have the ->nopage function
    calculate it itself anyway (because that's a similar layering violation).

    Having the populate handler install the pte itself is likewise a nasty thing
    to be doing.

    This patch introduces a new fault handler that replaces ->nopage and
    ->populate and (later) ->nopfn. Most of the old mechanism is still in place
    so there is a lot of duplication and nice cleanups that can be removed if
    everyone switches over.

    The rationale for doing this in the first place is that nonlinear mappings are
    subject to the pagefault vs invalidate/truncate race too, and it seemed stupid
    to duplicate the synchronisation logic rather than just consolidate the two.

    After this patch, MAP_NONBLOCK no longer sets up ptes for pages present in
    pagecache. Seems like a fringe functionality anyway.

    NOPAGE_REFAULT is removed. This should be implemented with ->fault, and no
    users have hit mainline yet.

    [akpm@linux-foundation.org: cleanup]
    [randy.dunlap@oracle.com: doc. fixes for readahead]
    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Nick Piggin
    Signed-off-by: Randy Dunlap
    Cc: Mark Fasheh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nick Piggin
     

11 Jul, 2007

9 commits


07 Jun, 2007

1 commit

  • The write path code intends to bug if a math error (or unhandled case)
    results in a write outside of the current cluster boundaries. The actual
    BUG_ON() statements however are incorrect, leading to a crash on kernels
    with 64k page size. Fix those by checking against the right variables.

    Also, move the assertions higher up within the functions so that they trip
    *before* the code starts to mark buffers.

    Signed-off-by: Mark Fasheh

    Mark Fasheh
     

26 May, 2007

2 commits


03 May, 2007

3 commits


27 Apr, 2007

10 commits


15 Mar, 2007

1 commit

  • Under load, OCFS2 would crash in invalidate_inode_pages2_range() because
    invalidate_complete_page2() was unable to invalidate a page. It would
    appear that JBD is holding on to the page. ext3 has a specific
    ->releasepage() handler to cover this case.

    Steal ext3's ->releasepage(), ->invalidatepage(), and ->migratepage(), as
    they appear completely appropriate for OCFS2.

    Signed-off-by: Joel Becker
    Signed-off-by: Mark Fasheh

    Joel Becker
     

29 Dec, 2006

1 commit

  • ocfs2_direct_IO_get_blocks() was incorrectly returning -EIO for a direct I/O
    read whose start block was past the end of the file allocation tree. Fix
    things so that we return a hole instead. do_direct_IO() will then notice
    that the range start is past eof and return a short read.

    While there, remove the unused vbo_max variable.

    Signed-off-by: Mark Fasheh

    Mark Fasheh
     

09 Dec, 2006

1 commit


02 Dec, 2006

4 commits


21 Sep, 2006

1 commit


30 Jun, 2006

1 commit


29 Jun, 2006

1 commit


18 May, 2006

1 commit

  • We need to take a data lock around extends to protect the pages that
    ocfs2_zero_extend is going to be pulling into the page cache. Otherwise an
    extend on one node might populate the page cache with data pages that have
    no lock coverage.

    Signed-off-by: Mark Fasheh

    Mark Fasheh
     

27 Mar, 2006

1 commit

  • Now that get_block() can handle mapping multiple disk blocks, no need to have
    ->get_blocks(). This patch removes fs specific ->get_blocks() added for DIO
    and makes it users use get_block() instead.

    Signed-off-by: Badari Pulavarty
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Badari Pulavarty
     

25 Mar, 2006

1 commit


04 Jan, 2006

1 commit