1. 07 6月, 2006 2 次提交
  2. 26 5月, 2006 1 次提交
  3. 24 5月, 2006 2 次提交
  4. 22 5月, 2006 2 次提交
  5. 19 5月, 2006 8 次提交
  6. 17 5月, 2006 1 次提交
  7. 13 5月, 2006 3 次提交
    • S
      [GFS2] Fix attributes setting logic · b9cb9813
      Steven Whitehouse 提交于
      The attributes logic for immutable was wrong so that there was
      not way to remove this attribute once set. This fixes the
      bug.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      b9cb9813
    • S
      [GFS2] Remove incorrect initialisation of gh_owner · 9801f646
      Steven Whitehouse 提交于
      The gh_owner field shouldn't be set or reset outside the glock code.
      These were left over from when recursive locking was allowed. It
      isn't any more, so they are not needed.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      9801f646
    • S
      [GFS2] Reverse block order in build_height · e90c01e1
      Steven Whitehouse 提交于
      The original code ordered the blocks allocated in the build_height
      routine backwards causing excessive disk seeks during a read of the
      metadata. This patch reverses the order to try and reduce disk seeks.
      
      Example: A five level metadata tree, I = Inode, P = Pointers, D = Data
      
      You need to read the blocks in the order:
      
      I P5 P4 P3 P2 P1 D
      
      in order to read a single data block. The new code now orders the blocks
      in this way. The old code used to order them as:
      
      I P1 P2 P3 P4 P5 D
      
      requiring two extra seeks on average. Note that for files which are
      grown by gradual extension rather than by truncate or by llseek/write
      at a large offset, this doesn't apply. In the case of writing to a
      file linearly, this routine will only be called upon to extend the
      height of the tree by one block at a time, so the ordering is
      determined by when its called rather than by the internals of the
      routine itself. Optimising that part of the ordering is a much
      harder problem.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      e90c01e1
  8. 06 5月, 2006 2 次提交
    • S
      [GFS2] Readpages support · fd88de56
      Steven Whitehouse 提交于
      This adds readpages support (and also corrects a small bug in
      the readpage error path at the same time). Hopefully this will
      improve performance by allowing GFS to submit larger lumps of
      I/O at a time.
      
      In order to simplify the setting of BH_Boundary, it currently gets
      set when we hit the end of a indirect pointer block. There is
      always a boundary at this point with the current allocation code.
      It doesn't get all the boundaries right though, so there is still
      room for improvement in this.
      
      See comments in fs/gfs2/ops_address.c for further information about
      readpages with GFS2.
      
      Signed-off-by: Steven Whitehouse
      fd88de56
    • R
      [GFS2] Set d_ops for root inode · 5bb76af1
      Robert S Peterson 提交于
      Well, I managed to track down the bug in gfs2 that was causing
      my grief.  Below is a patch for the problem.  Please incorporate
      as you see fit.  Or should I say: as you see git.
      
      The problem was basically that you never set d_ops for the root
      inode, so the wrong hash algorithm was being used.  But only for
      the root directory.  Turns out that if I used subdirectories, it
      used the proper hash and my files were found just fine.
      Signed-off-by: NRobert S Peterson <rpeterso@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      5bb76af1
  9. 03 5月, 2006 1 次提交
  10. 28 4月, 2006 3 次提交
    • S
      [GFS2] Remove some unused code · 56409abb
      Steven Whitehouse 提交于
      Remove some of the unused code flagged up by Adrian Bunk.
      
      Cc: Adrian Bunk <bunk@stusta.de>
      Signed-off-by: Steven Whitehouse
      56409abb
    • A
      [GFS2] [-mm patch] fs/gfs2/: possible cleanups · 08bc2dbc
      Adrian Bunk 提交于
      This patch contains the following possible cleanups:
      - make needlessly global code static
      - #if 0 unused functions
      - remove the following global function that was both unused and
        unimplemented:
        - super.c: gfs2_do_upgrade()
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      08bc2dbc
    • S
      [GFS2] Reordering in deallocation to avoid recursive locking · 36327521
      Steven Whitehouse 提交于
      Despite my earlier careful search, there was a recursive lock left
      in the deallocation code. This removes it. It also should speed up
      deallocation be reducing the number of locking operations which take
      place by using two "try lock" operations on the two locks involved in
      inode deallocation which allows us to grab the locks out of order
      (compared with NFS which grabs the inode lock first and the iopen
      lock later). It is ok for us to fail while doing this since if it
      does fail it means that someone else is still using the inode and
      thus it wouldn't be possible to deallocate anyway.
      
      This fixes the bug reported to me by Rob Kenna.
      
      Cc: Rob Kenna <rkenna@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      36327521
  11. 27 4月, 2006 4 次提交
  12. 26 4月, 2006 2 次提交
  13. 25 4月, 2006 2 次提交
  14. 24 4月, 2006 1 次提交
  15. 22 4月, 2006 3 次提交
  16. 21 4月, 2006 2 次提交
    • D
      [GFS2] journal recovery patch · c63e31c2
      David Teigland 提交于
      This is one of the changes related to journal recovery I mentioned a
      couple weeks ago.  We can get into a situation where there are only
      readonly nodes currently mounting the fs, but there are journals that need
      to be recovered.  Since the readonly nodes can't recover journals, the
      next rw mounter needs to go through and check all journals and recover any
      that are dirty (i.e. what the first node to mount the fs does).  This rw
      mounter needs to skip the journals held by the existing readonly nodes.
      Skipping those journals amounts to using the TRY flag on the journal locks
      so acquiring the lock of a journal held by a readonly node will fail
      instead of blocking indefinately.
      Signed-off-by: NDavid Teigland <teigland@redhat.com>
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      c63e31c2
    • S
      [GFS2] Fix a bug: scheduling under a spinlock · 190562bd
      Steven Whitehouse 提交于
      At some stage, a mutex was added to gfs2_glock_put() without
      checking all its call sites. Two of them were called from
      under a spinlock causing random delays at various points and
      crashes.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      190562bd
  17. 18 4月, 2006 1 次提交
    • S
      [GFS2] Use vmalloc() in dir code · fe1bdedc
      Steven Whitehouse 提交于
      When allocating memory to sort directory entries, use vmalloc()
      rather than kmalloc() since for larger directories, the required
      size can easily be graeter than the 128k maximum of kmalloc().
      
      Also adding the first steps towards getting the AOP_TRUNCATED_PAGE
      return code get in the glock code by flagging all places where we
      request a glock and we are holding a page lock.
      Signed-off-by: NSteven Whitehouse <swhiteho@redhat.com>
      fe1bdedc