1. 01 5月, 2019 1 次提交
  2. 08 3月, 2019 1 次提交
  3. 06 3月, 2019 1 次提交
    • T
      gfs2: Fix an incorrect gfs2_assert() · 7c03e756
      Tim Smith 提交于
      When updating the inode information after a change in allocation,
      convert the change into the same units as the inode's i_blocks count
      before comparing it in an assertion.
      
      Also, change the comparison so that it is still possible to set i_blocks
      to zero by adding -i_blocks, something that was previously only possible
      because of the difference in units.
      Signed-off-by: NTim Smith <tim.smith@citrix.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      7c03e756
  4. 24 2月, 2019 1 次提交
  5. 15 2月, 2019 2 次提交
  6. 01 2月, 2019 1 次提交
  7. 23 1月, 2019 1 次提交
  8. 19 12月, 2018 1 次提交
  9. 12 12月, 2018 10 次提交
  10. 01 12月, 2018 1 次提交
  11. 17 11月, 2018 1 次提交
  12. 09 11月, 2018 2 次提交
    • A
      gfs2: Fix metadata read-ahead during truncate (2) · e7445ced
      Andreas Gruenbacher 提交于
      The previous attempt to fix for metadata read-ahead during truncate was
      incorrect: for files with a height > 2 (1006989312 bytes with a block
      size of 4096 bytes), read-ahead requests were not being issued for some
      of the indirect blocks discovered while walking the metadata tree,
      leading to significant slow-downs when deleting large files.  Fix that.
      
      In addition, only issue read-ahead requests in the first pass through
      the meta-data tree, while deallocating data blocks.
      
      Fixes: c3ce5aa9 ("gfs2: Fix metadata read-ahead during truncate")
      Cc: stable@vger.kernel.org # v4.16+
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      e7445ced
    • A
      gfs2: Put bitmap buffers in put_super · 10283ea5
      Andreas Gruenbacher 提交于
      gfs2_put_super calls gfs2_clear_rgrpd to destroy the gfs2_rgrpd objects
      attached to the resource group glocks.  That function should release the
      buffers attached to the gfs2_bitmap objects (bi_bh), but the call to
      gfs2_rgrp_brelse for doing that is missing.
      
      When gfs2_releasepage later runs across these buffers which are still
      referenced, it refuses to free them.  This causes the pages the buffers
      are attached to to remain referenced as well.  With enough mount/unmount
      cycles, the system will eventually run out of memory.
      
      Fix this by adding the missing call to gfs2_rgrp_brelse in
      gfs2_clear_rgrpd.
      
      (Also fix a gfs2_rgrp_relse -> gfs2_rgrp_brelse typo in a comment.)
      
      Fixes: 39b0f1e9 ("GFS2: Don't brelse rgrp buffer_heads every allocation")
      Cc: stable@vger.kernel.org # v4.2+
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      10283ea5
  13. 21 10月, 2018 1 次提交
  14. 20 10月, 2018 1 次提交
  15. 16 10月, 2018 1 次提交
    • B
      gfs2: write revokes should traverse sd_ail1_list in reverse · c9e58fb2
      Bob Peterson 提交于
      All the other functions that deal with the sd_ail_list run the list
      from the tail back to the head, iow, in reverse. We should do the
      same while writing revokes, otherwise we might miss removing entries
      properly from the list when we hit the limit of how many revokes we
      can write at one time (based on block size, which determines how
      many block pointers will fit in the revoke block).
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      c9e58fb2
  16. 13 10月, 2018 1 次提交
  17. 12 10月, 2018 10 次提交
  18. 10 10月, 2018 1 次提交
  19. 09 10月, 2018 2 次提交
    • S
      gfs2: getlabel support · 6ddc5c3d
      Steve Whitehouse 提交于
      Add support for the GETFSLABEL ioctl in gfs2.
      I tested this patch and it works as expected.
      Signed-off-by: NSteve Whitehouse <swhiteho@redhat.com>
      Tested-by: NAbhi Das <adas@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      6ddc5c3d
    • T
      GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads · 1eb8d738
      Tim Smith 提交于
      Flushing the workqueue can cause operations to happen which might
      call gfs2_log_reserve(), or get stuck waiting for locks taken by such
      operations.  gfs2_log_reserve() can io_schedule(). If this happens, it
      will never wake because the only thing which can wake it is gfs2_logd()
      which was already stopped.
      
      This causes umount of a gfs2 filesystem to wedge permanently if, for
      example, the umount immediately follows a large delete operation.
      
      When this occured, the following stack trace was obtained from the
      umount command
      
      [<ffffffff81087968>] flush_workqueue+0x1c8/0x520
      [<ffffffffa0666e29>] gfs2_make_fs_ro+0x69/0x160 [gfs2]
      [<ffffffffa0667279>] gfs2_put_super+0xa9/0x1c0 [gfs2]
      [<ffffffff811b7edf>] generic_shutdown_super+0x6f/0x100
      [<ffffffff811b7ff7>] kill_block_super+0x27/0x70
      [<ffffffffa0656a71>] gfs2_kill_sb+0x71/0x80 [gfs2]
      [<ffffffff811b792b>] deactivate_locked_super+0x3b/0x70
      [<ffffffff811b79b9>] deactivate_super+0x59/0x60
      [<ffffffff811d2998>] cleanup_mnt+0x58/0x80
      [<ffffffff811d2a12>] __cleanup_mnt+0x12/0x20
      [<ffffffff8108c87d>] task_work_run+0x7d/0xa0
      [<ffffffff8106d7d9>] exit_to_usermode_loop+0x73/0x98
      [<ffffffff81003961>] syscall_return_slowpath+0x41/0x50
      [<ffffffff815a594c>] int_ret_from_sys_call+0x25/0x8f
      [<ffffffffffffffff>] 0xffffffffffffffff
      Signed-off-by: NTim Smith <tim.smith@citrix.com>
      Signed-off-by: NMark Syms <mark.syms@citrix.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      1eb8d738