An error occurred fetching the project authors.
  1. 12 Oct, 2007 4 commits
    • Mark Fasheh's avatar
      ocfs2: Write support for inline data · 1afc32b9
      Mark Fasheh authored
      This fixes up write, truncate, mmap, and RESVSP/UNRESVP to understand inline
      inode data.
      
      For the most part, the changes to the core write code can be relied on to do
      the heavy lifting. Any code calling ocfs2_write_begin (including shared
      writeable mmap) can count on it doing the right thing with respect to
      growing inline data to an extent tree.
      
      Size reducing truncates, including UNRESVP can simply zero that portion of
      the inode block being removed. Size increasing truncatesm, including RESVP
      have to be a little bit smarter and grow the inode to an extent tree if
      necessary.
      Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
      Reviewed-by: default avatarJoel Becker <joel.becker@oracle.com>
      1afc32b9
    • Mark Fasheh's avatar
      ocfs2: Read support for inline data · 6798d35a
      Mark Fasheh authored
      This hooks up ocfs2_readpage() to populate a page with data from an inode
      block. Direct IO reads from inline data are modified to fall back to
      buffered I/O. Appropriate checks are also placed in the extent map code to
      avoid reading an extent list when inline data might be stored.
      Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
      Reviewed-by: default avatarJoel Becker <joel.becker@oracle.com>
      6798d35a
    • Mark Fasheh's avatar
      ocfs2: Small refactor of truncate zeroing code · 1d410a6e
      Mark Fasheh authored
      We'll want to reuse most of this when pushing inline data back out to an
      extent. Keeping this part as a seperate patch helps to keep the upcoming
      changes for write support uncluttered.
      
      The core portion of ocfs2_zero_cluster_pages() responsible for making sure a
      page is mapped and properly dirtied is abstracted out into it's own
      function, ocfs2_map_and_dirty_page(). Actual functionality doesn't change,
      though zeroing becomes optional.
      
      We also turn part of ocfs2_free_write_ctxt() into  a common function for
      unlocking and freeing a page array. This operation is very common (and
      uniform) for Ocfs2 cluster sizes greater than page size, so it makes sense
      to keep the code in one place.
      Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
      Reviewed-by: default avatarJoel Becker <joel.becker@oracle.com>
      1d410a6e
    • Mark Fasheh's avatar
      ocfs2: move nonsparse hole-filling into ocfs2_write_begin() · 65ed39d6
      Mark Fasheh authored
      By doing this, we can remove any higher level logic which has to have
      knowledge of btree functionality - any callers of ocfs2_write_begin() can
      now expect it to do anything necessary to prepare the inode for new data.
      Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
      Reviewed-by: default avatarJoel Becker <joel.becker@oracle.com>
      65ed39d6
  2. 20 Sep, 2007 2 commits
  3. 11 Sep, 2007 1 commit
  4. 19 Jul, 2007 1 commit
    • Nick Piggin's avatar
      mm: merge populate and nopage into fault (fixes nonlinear) · 54cb8821
      Nick Piggin authored
      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: default avatarNick Piggin <npiggin@suse.de>
      Signed-off-by: default avatarRandy Dunlap <randy.dunlap@oracle.com>
      Cc: Mark Fasheh <mark.fasheh@oracle.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      54cb8821
  5. 11 Jul, 2007 9 commits
  6. 06 Jun, 2007 1 commit
    • Mark Fasheh's avatar
      ocfs2: Fix invalid assertion during write on 64k pages · eeb47d12
      Mark Fasheh authored
      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: default avatarMark Fasheh <mark.fasheh@oracle.com>
      eeb47d12
  7. 25 May, 2007 2 commits
  8. 02 May, 2007 3 commits
  9. 26 Apr, 2007 10 commits
  10. 14 Mar, 2007 1 commit
  11. 29 Dec, 2006 1 commit
    • Mark Fasheh's avatar
      ocfs2: Allow direct I/O read past end of file · 564f8a32
      Mark Fasheh authored
      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: default avatarMark Fasheh <mark.fasheh@oracle.com>
      564f8a32
  12. 08 Dec, 2006 1 commit
  13. 02 Dec, 2006 4 commits