1. 14 10月, 2008 2 次提交
    • T
      ocfs2: reserve inline space for extended attribute · fdd77704
      Tiger Yang 提交于
      Add the structures and helper functions we want for handling inline extended
      attributes. We also update the inline-data handlers so that they properly
      function in the event that we have both inline data and inline attributes
      sharing an inode block.
      Signed-off-by: NTiger Yang <tiger.yang@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      fdd77704
    • T
      ocfs2: Add the basic xattr disk layout in ocfs2_fs.h · 5a7bc8eb
      Tao Ma 提交于
      Ocfs2 uses a very flexible structure for storing extended attributes on
      disk. Small amount of attributes are stored directly in the inode block - up
      to 256 bytes worth. If that fills up, attributes are also stored in an
      external block, linked to from the inode block. That block can in turn
      expand to a btree, capable of storing large numbers of attributes.
      
      Individual attribute values are stored inline if they're small enough
      (currently about 80 bytes, this can be changed though), and otherwise are
      expanded to a btree. The theoretical limit to the size of an individual
      attribute is about the same as an inode, though the kernel's upper bound on
      the size of an attributes data is far smaller.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      5a7bc8eb
  2. 01 8月, 2008 1 次提交
  3. 15 7月, 2008 1 次提交
    • J
      ocfs2: Don't snprintf() without a format. · fe9f3877
      Joel Becker 提交于
      Some system files are per-slot.  Their names include the slot number.
      ocfs2_sprintf_system_inode_name() uses the system inode definitions to
      fill in the slot number with snprintf().
      
      For global system files, there is no node number, and the name was
      printed as a format with no arguments.  -Wformat-nonliteral and
      -Wformat-security don't like this.  Instead, use a static "%s" format
      and the name as the argument.
      Signed-off-by: NJoel Becker <joel.becker@oracle.com>
      fe9f3877
  4. 18 4月, 2008 3 次提交
  5. 26 1月, 2008 3 次提交
    • S
      ocfs2: Local alloc window size changeable via mount option · 2fbe8d1e
      Sunil Mushran 提交于
      Local alloc is a performance optimization in ocfs2 in which a node
      takes a window of bits from the global bitmap and then uses that for
      all small local allocations. This window size is fixed to 8MB currently.
      This patch allows users to specify the window size in MB including
      disabling it by passing in 0. If the number specified is too large,
      the fs will use the default value of 8MB.
      
      mount -o localalloc=X /dev/sdX /mntpoint
      Signed-off-by: NSunil Mushran <sunil.mushran@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      2fbe8d1e
    • T
      [PATCH 2/2] ocfs2: Implement group add for online resize · 7909f2bf
      Tao Ma 提交于
      This patch adds the ability for a userspace program to request that a
      properly formatted cluster group be added to the main allocation bitmap for
      an Ocfs2 file system. The request is made via an ioctl, OCFS2_IOC_GROUP_ADD.
      On a high level, this is similar to ext3, but we use a different ioctl as
      the structure which has to be passed through is different.
      
      During an online resize, tunefs.ocfs2 will format any new cluster groups
      which must be added to complete the resize, and call OCFS2_IOC_GROUP_ADD on
      each one. Kernel verifies that the core cluster group information is valid
      and then does the work of linking it into the global allocation bitmap.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      7909f2bf
    • T
      [PATCH 1/2] ocfs2: Add group extend for online resize · d659072f
      Tao Ma 提交于
      This patch adds the ability for a userspace program to request an extend of
      last cluster group on an Ocfs2 file system. The request is made via ioctl,
      OCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is
      obviously Ocfs2 specific.
      
      tunefs.ocfs2 would call this for an online-resize operation if the last
      cluster group isn't full.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      d659072f
  6. 13 10月, 2007 2 次提交
  7. 11 7月, 2007 2 次提交
    • M
      ocfs2: Support xfs style space reservation ioctls · b2580103
      Mark Fasheh 提交于
      We re-use the RESVSP/UNRESVSP ioctls from xfs which allow the user to
      allocate and deallocate regions to a file without zeroing data or changing
      i_size.
      
      Though renamed, the structure passed in from user is identical to struct
      xfs_flock64. The three fields that are actually used right now are l_whence,
      l_start and l_len.
      
      This should get ocfs2 immediate compatibility with userspace software using
      the pre-existing xfs ioctls.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      b2580103
    • M
      ocfs2: btree changes for unwritten extents · 328d5752
      Mark Fasheh 提交于
      Writes to a region marked as unwritten might result in a record split or
      merge. We can support splits by making minor changes to the existing insert
      code. Merges require left rotations which mostly re-use right rotation
      support functions.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      328d5752
  8. 03 5月, 2007 1 次提交
  9. 27 4月, 2007 3 次提交
    • M
      ocfs2: make room for unwritten extents flag · e48edee2
      Mark Fasheh 提交于
      Due to the size of our group bitmaps, we'll never have a leaf node extent
      record with more than 16 bits worth of clusters. Split e_clusters up so that
      leaf nodes can get a flags field where we can mark unwritten extents.
      Interior nodes whose length references all the child nodes beneath it can't
      split their e_clusters field, so we use a union to preserve sizing there.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      e48edee2
    • 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
    • T
      ocfs2: Remove delete inode vote · 50008630
      Tiger Yang 提交于
      Ocfs2 currently does cluster-wide node messaging to check the open state of
      an inode during delete. This patch removes that mechanism in favor of an
      inode cluster lock which is taken at shared read when an inode is first read
      and dropped in clear_inode(). This allows a deleting node to test the
      liveness of an inode by attempting to take an exclusive lock.
      Signed-off-by: NTiger Yang <tiger.yang@oracle.com>
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      50008630
  10. 27 1月, 2007 1 次提交
  11. 22 1月, 2007 1 次提交
  12. 08 12月, 2006 2 次提交
  13. 21 9月, 2006 1 次提交
  14. 02 3月, 2006 1 次提交
  15. 04 1月, 2006 1 次提交