1. 05 Dec, 2009 35 commits
  2. 03 Dec, 2009 5 commits
    • Steven Whitehouse's avatar
      GFS2: Fix glock refcount issues · 26bb7505
      Steven Whitehouse authored
      This patch fixes some ref counting issues. Firstly by moving
      the point at which we drop the ref count after a dlm lock
      operation has completed we ensure that we never call
      gfs2_glock_hold() on a lock with a zero ref count.
      
      Secondly, by using atomic_dec_and_lock() in gfs2_glock_put()
      we ensure that at no time will a glock with zero ref count
      appear on the lru_list. That means that we can remove the
      check for this in our shrinker (which was racy).
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      26bb7505
    • Wu Fengguang's avatar
      writeback: remove unused nonblocking and congestion checks (gfs2) · c29cd900
      Wu Fengguang authored
      No one is calling wb_writeback and write_cache_pages with
      wbc.nonblocking=1 any more. And lumpy pageout will want to do
      nonblocking writeback without the congestion wait.
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      c29cd900
    • Benjamin Marzinski's avatar
      GFS2: drop rindex glock to refresh rindex list · 9ae3c6de
      Benjamin Marzinski authored
      When a gfs2 filesystem is grown, it needs to rebuild the rindex list to be able
      to use the new space.  gfs2 does this when the rindex is marked not uptodate,
      which happens when the rindex glock is dropped.  However, on a single node
      setup, there is never any reason to drop the rindex glock, so gfs2 never
      invalidates the the rindex. This patch makes gfs2 automatically drop the
      rindex glock after filesystem grows, so it can refresh the rindex list.
      Signed-off-by: default avatarBenjamin Marzinski <bmarzins@redhat.com>
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      9ae3c6de
    • Steven Whitehouse's avatar
      GFS2: Tag all metadata with jid · 0ab7d13f
      Steven Whitehouse authored
      There are two spare field in the header common to all GFS2
      metadata. One is just the right size to fit a journal id
      in it, and this patch updates the journal code so that each
      time a metadata block is modified, we tag it with the journal
      id of the node which is performing the modification.
      
      The reason for this is that it should make it much easier to
      debug issues which arise if we can tell which node was the
      last to modify a particular metadata block.
      
      Since the field is updated before the block is written into
      the journal, each journal should only contain metadata which
      is tagged with its own journal id. The one exception to this
      is the journal header block, which might have a different node's
      id in it, if that journal was recovered by another node in the
      cluster.
      
      Thus each journal will contain a record of which nodes recovered
      it, via the journal header.
      
      The other field in the metadata header could potentially be
      used to hold information about what kind of operation was
      performed, but for the time being we just zero it on each
      transaction so that if we use it for that in future, we'll
      know that the information (where it exists) is reliable.
      
      I did consider using the other field to hold the journal
      sequence number, however since in GFS2's journaling we write
      the modified data into the journal and not the original
      data, this gives no information as to what action caused the
      modification, so I think we can probably come up with a better
      use for those 64 bits in the future.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      0ab7d13f
    • Steven Whitehouse's avatar
      GFS2: Locking order fix in gfs2_check_blk_state · 2c776349
      Steven Whitehouse authored
      In some cases we already have the rindex lock when
      we enter this function.
      Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
      2c776349