1. 23 10月, 2019 1 次提交
  2. 05 9月, 2019 1 次提交
  3. 03 9月, 2019 1 次提交
    • A
      gfs2: Always mark inode dirty in fallocate · 0a6a4abc
      Andreas Gruenbacher 提交于
      When allocating space with fallocate, always update the file timestamps
      and mark the inode dirty, no matter if the FALLOC_FL_KEEP_SIZE flag is
      set or not.  The inode needs to be marked dirty so that a subsequent
      fsync will pick it up and any new allocations will make it to disk.
      Filesystems like xfs and ext4 always update the timestamps, so make
      gfs2 behave the same way.
      
      Fixes xfstest generic/483.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      0a6a4abc
  4. 03 7月, 2019 2 次提交
  5. 01 7月, 2019 1 次提交
  6. 28 6月, 2019 1 次提交
  7. 05 6月, 2019 1 次提交
  8. 24 2月, 2019 1 次提交
  9. 01 12月, 2018 1 次提交
  10. 12 10月, 2018 1 次提交
  11. 09 10月, 2018 1 次提交
  12. 25 7月, 2018 3 次提交
  13. 02 7月, 2018 3 次提交
  14. 04 6月, 2018 1 次提交
    • A
      gfs2: Iomap cleanups and improvements · 628e366d
      Andreas Gruenbacher 提交于
      Clean up gfs2_iomap_alloc and gfs2_iomap_get.  Document how
      gfs2_iomap_alloc works: it now needs to be called separately after
      gfs2_iomap_get where necessary; this will be used later by iomap write.
      Move gfs2_iomap_ops into bmap.c.
      
      Introduce a new gfs2_iomap_get_alloc helper and use it in
      fallocate_chunk: gfs2_iomap_begin will become unsuitable for fallocate
      with proper iomap write support.
      
      In gfs2_block_map and fallocate_chunk, zero-initialize struct iomap.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      628e366d
  15. 29 3月, 2018 1 次提交
  16. 09 3月, 2018 1 次提交
    • A
      gfs2: Fix fallocate chunk size · 174d1232
      Andreas Gruenbacher 提交于
      The chunk size of allocations in __gfs2_fallocate is calculated
      incorrectly.  The size can collapse, causing __gfs2_fallocate to
      allocate one block at a time, which is very inefficient.  This needs
      fixing in two places:
      
      In gfs2_quota_lock_check, always set ap->allowed to UINT_MAX to indicate
      that there is no quota limit.  This fixes callers that rely on
      ap->allowed to be set even when quotas are off.
      
      In __gfs2_fallocate, reset max_blks to UINT_MAX in each iteration of the
      loop to make sure that allocation limits from one resource group won't
      spill over into another resource group.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      174d1232
  17. 23 1月, 2018 2 次提交
  18. 19 1月, 2018 1 次提交
  19. 31 10月, 2017 3 次提交
    • A
      gfs2: Fix and clean up {GET,SET}FLAGS ioctl · b16f7e57
      Andreas Gruenbacher 提交于
      Switch to a simple array for mapping between the FS_*_FL and GFS_DIF_*
      flags.  Clarify how the mapping between FS_JOURNAL_DATA_FL and the
      filesystem flags works.  The GFS2_DIF_SYSTEM flag cannot be set from
      user space, so remove it from GFS2_FLAGS_USER_SET.  Fail with -EINVAL
      when trying to set flags that are not supported instead of silently
      ignoring those flags.
      
      Partially fixes xfstest generic/424.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Reviewed-by: NAndrew Price <anprice@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      b16f7e57
    • B
      GFS2: Take inode off order_write list when setting jdata flag · cc555b09
      Bob Peterson 提交于
      This patch fixes a deadlock caused when the jdata flag is set for
      inodes that are already on the ordered write list. Since it is
      on the ordered write list, log_flush calls gfs2_ordered_write which
      calls filemap_fdatawrite. But since the inode had the jdata flag
      set, that calls gfs2_jdata_writepages, which tries to start a new
      transaction. A new transaction cannot be started because it tries
      to acquire the log_flush rwsem which is already locked by the log
      flush operation.
      
      The bottom line is: We cannot switch an inode from ordered to jdata
      until we eliminate any ordered data pages (via log flush) or any
      log_flush operation afterward will create the circular dependency
      above. So we need to flush the log before setting the diskflags to
      switch the file mode, then we need to remove the inode from the
      ordered writes list.
      
      Before this patch, the log flush was done for jdata->ordered, but
      that's wrong. If we're going from jdata to ordered, we don't need
      to call gfs2_log_flush because the call to filemap_fdatawrite will
      do it for us:
      
         filemap_fdatawrite() -> __filemap_fdatawrite_range()
            __filemap_fdatawrite_range() -> do_writepages()
               do_writepages() -> gfs2_jdata_writepages()
                  gfs2_jdata_writepages() -> gfs2_log_flush()
      
      This patch modifies function do_gfs2_set_flags so that if a file
      has its jdata flag set, and it's already on the ordered write list,
      the log will be flushed and it will be removed from the list
      before setting the flag.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Acked-by: NAbhijith Das <adas@redhat.com>
      cc555b09
    • A
      gfs2: Implement SEEK_HOLE / SEEK_DATA via iomap · 3a27411c
      Andreas Gruenbacher 提交于
      So far, lseek on gfs2 did not report holes.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      3a27411c
  20. 26 9月, 2017 1 次提交
  21. 01 8月, 2017 1 次提交
  22. 18 7月, 2017 1 次提交
  23. 05 4月, 2017 1 次提交
  24. 25 2月, 2017 1 次提交
  25. 25 12月, 2016 1 次提交
  26. 06 10月, 2016 1 次提交
  27. 27 9月, 2016 1 次提交
  28. 27 6月, 2016 1 次提交
    • A
      gfs2: Lock holder cleanup · 6df9f9a2
      Andreas Gruenbacher 提交于
      Make the code more readable by cleaning up the different ways of
      initializing lock holders and checking for initialized lock holders:
      mark lock holders as uninitialized by setting the holder's glock to NULL
      (gfs2_holder_mark_uninitialized) instead of zeroing out the entire
      object or using a separate flag.  Recognize initialized holders by their
      non-NULL glock (gfs2_holder_initialized).  Don't zero out holder objects
      which are immeditiately initialized via gfs2_holder_init or
      gfs2_glock_nq_init.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      6df9f9a2
  29. 13 5月, 2016 1 次提交
  30. 02 5月, 2016 2 次提交
  31. 20 4月, 2016 1 次提交