1. 14 10月, 2008 2 次提交
    • T
      ocfs2: Modify ocfs2_num_free_extents for future xattr usage. · 231b87d1
      Tao Ma 提交于
      ocfs2_num_free_extents() is used to find the number of free extent records
      in an inode btree. Hence, it takes an "ocfs2_dinode" parameter. We want to
      use this for extended attribute trees in the future, so genericize the
      interface the take a buffer head. A future patch will allow that buffer_head
      to contain any structure rooting an ocfs2 btree.
      Signed-off-by: NTao Ma <tao.ma@oracle.com>
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      231b87d1
    • M
      ocfs2: POSIX file locks support · 53da4939
      Mark Fasheh 提交于
      This is actually pretty easy since fs/dlm already handles the bulk of the
      work. The Ocfs2 userspace cluster stack module already uses fs/dlm as the
      underlying lock manager, so I only had to add the right calls.
      
      Cluster-aware POSIX locks ("plocks") can be turned off by the same means at
      UNIX locks - mount with 'noflocks', or create a local-only Ocfs2 volume.
      Internally, the file system uses two sets of file_operations, depending on
      whether cluster aware plocks is required. This turns out to be easier than
      implementing local-only versions of ->lock.
      Signed-off-by: NMark Fasheh <mfasheh@suse.com>
      53da4939
  2. 27 7月, 2008 1 次提交
    • A
      [PATCH] sanitize ->permission() prototype · e6305c43
      Al Viro 提交于
      * kill nameidata * argument; map the 3 bits in ->flags anybody cares
        about to new MAY_... ones and pass with the mask.
      * kill redundant gfs2_iop_permission()
      * sanitize ecryptfs_permission()
      * fix remaining places where ->permission() instances might barf on new
        MAY_... found in mask.
      
      The obvious next target in that direction is permission(9)
      
      folded fix for nfs_permission() breakage from Miklos Szeredi <mszeredi@suse.cz>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e6305c43
  3. 26 1月, 2008 1 次提交
    • M
      [PATCH 1/2] ocfs2: add flock lock type · cf8e06f1
      Mark Fasheh 提交于
      This adds a new dlmglue lock type which is intended to back flock()
      requests.
      
      Since these locks are driven from userspace, usage rules are much more
      liberal than the typical Ocfs2 internal cluster lock. As a result, we can't
      make use of most dlmglue features - lock caching and lock level
      optimizations in particular. Additionally, userspace is free to deadlock
      itself, so we have to deal with that in the same way as the rest of the
      kernel - by allowing a signal to abort a lock request.
      
      In order to keep ocfs2_cluster_lock() complexity down, ocfs2_file_lock()
      does it's own dlm coordination. We still use the same helper functions
      though, so duplicated code is kept to a minimum.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      cf8e06f1
  4. 13 10月, 2007 1 次提交
  5. 11 7月, 2007 3 次提交
    • 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: Support creation of unwritten extents · 2ae99a60
      Mark Fasheh 提交于
      This can now be trivially supported with re-use of our existing extend code.
      
      ocfs2_allocate_unwritten_extents() takes a start offset and a byte length
      and iterates over the inode, adding extents (marked as unwritten) until len
      is reached. Existing extents are skipped over.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      2ae99a60
    • M
      ocfs2: support writing of unwritten extents · b27b7cbc
      Mark Fasheh 提交于
      Update the write code to detect when the user is asking to write to an
      unwritten extent. Like writing to a hole, we must zero the region between
      the write and the cluster boundaries. Most of the existing cluster zeroing
      logic can be re-used with some additional checks for the unwritten flag on
      extent records.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      b27b7cbc
  6. 03 5月, 2007 1 次提交
  7. 27 4月, 2007 2 次提交
    • M
      ocfs2: teach ocfs2_file_aio_write() about sparse files · 9517bac6
      Mark Fasheh 提交于
      Unfortunately, ocfs2 can no longer make use of generic_file_aio_write_nlock()
      because allocating writes will require zeroing of pages adjacent to the I/O
      for cluster sizes greater than page size.
      
      Implement a custom file write here, which can order page locks for zeroing.
      This also has the advantage that cluster locks can easily be ordered outside
      of the page locks.
      Signed-off-by: NMark Fasheh <mark.fasheh@oracle.com>
      9517bac6
    • 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
  8. 13 2月, 2007 1 次提交
  9. 02 12月, 2006 3 次提交
  10. 29 3月, 2006 1 次提交
  11. 04 1月, 2006 1 次提交