1. 27 4月, 2007 5 次提交
    • M
      ocfs2: Use do_sync_mapping_range() in ocfs2_zero_tail_for_truncate() · fa41045f
      Mark Fasheh 提交于
      Do this instead of filemap_fdatawrite() - this way we sync only the
      range between i_size and the cluster boundary.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      fa41045f
    • M
      ocfs2: zero tail of sparse files on truncate · 60b11392
      Mark Fasheh 提交于
      Since we don't zero on extend anymore, truncate needs to be fixed up to zero
      the part of a file between i_size and and end of it's cluster. Otherwise a
      subsequent extend could expose bad data.
      
      This introduced a new helper, which can be used in ocfs2_write().
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      60b11392
    • M
      ocfs2: teach extend/truncate about sparse files · 3a0782d0
      Mark Fasheh 提交于
      For ocfs2_truncate_file(), we eliminate the "simple" truncate case which no
      longer exists since i_size is not tied to i_clusters. In
      ocfs2_extend_file(), we skip the allocation / page zeroing code for file
      systems which understand sparse files.
      
      The core truncate code is changed to do a bottom up tree traversal. This
      gets abstracted out into it's own function. To make things more readable,
      most of the special case handling for in-inode extents from
      ocfs2_do_truncate() is also removed.
      
      Though write support for sparse files comes in a later patch, we at least
      update ocfs2_prepare_inode_for_write() to skip allocation for sparse files.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      3a0782d0
    • M
      ocfs2: temporarily remove extent map caching · 363041a5
      Mark Fasheh 提交于
      The code in extent_map.c is not prepared to deal with a subtree being
      rotated between lookups. This can happen when filling holes in sparse files.
      Instead of a lengthy patch to update the code (which would likely lose the
      benefit of caching subtree roots), we remove most of the algorithms and
      implement a simple path based lookup. A less ambitious extent caching scheme
      will be added in a later patch.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      363041a5
    • M
      ocfs2: sparse b-tree support · dcd0538f
      Mark Fasheh 提交于
      Introduce tree rotations into the b-tree code. This will allow ocfs2 to
      support sparse files. Much of the added code is designed to be generic (in
      the ocfs2 sense) so that it can later be re-used to implement large
      extended attributes.
      
      This patch only adds the rotation code and does minimal updates to callers
      of the extent api.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      dcd0538f
  2. 14 12月, 2006 1 次提交
  3. 02 12月, 2006 6 次提交
  4. 22 11月, 2006 1 次提交
  5. 21 9月, 2006 1 次提交
    • M
      ocfs2: Remove overzealous BUG_ON() · eb35746c
      Mark Fasheh 提交于
      The truncate code was never supposed to BUG() on an allocator it doesn't
      know about, but rather to ignore it. Right now, this does nothing, but when
      we change our allocation paths to use all suballocator files, this will
      allow current versions of the fs module to work fine.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      eb35746c
  6. 25 3月, 2006 1 次提交
  7. 10 1月, 2006 1 次提交
  8. 04 1月, 2006 1 次提交