1. 22 Dec, 2023 7 commits
  2. 16 Dec, 2023 6 commits
    • Chandan Babu R's avatar
      Merge tag 'repair-quota-6.8_2023-12-15' of... · 98bdbf60
      Chandan Babu R authored
      Merge tag 'repair-quota-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: online repair of quota and rt metadata files
      
      XFS stores quota records and free space bitmap information in files.
      Add the necessary infrastructure to enable repairing metadata inodes and
      their forks, and then make it so that we can repair the file metadata
      for the rtbitmap.  Repairing the bitmap contents (and the summary file)
      is left for subsequent patchsets.
      
      We also add the ability to repair file metadata the quota files.  As
      part of these repairs, we also reinitialize the ondisk dquot records as
      necessary to get the incore dquots working.  We can also correct
      obviously bad dquot record attributes, but we leave checking the
      resource usage counts for the next patchsets.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-quota-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: repair quotas
        xfs: improve dquot iteration for scrub
        xfs: check dquot resource timers
        xfs: check the ondisk space mapping behind a dquot
      98bdbf60
    • Chandan Babu R's avatar
      Merge tag 'repair-rtbitmap-6.8_2023-12-15' of... · 5bb4ad95
      Chandan Babu R authored
      Merge tag 'repair-rtbitmap-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: online repair of rt bitmap file
      
      Add in the necessary infrastructure to check the inode and data forks of
      metadata files, then apply that to the realtime bitmap file.  We won't
      be able to reconstruct the contents of the rtbitmap file until rmapbt is
      added for realtime volumes, but we can at least get the basics started.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-rtbitmap-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: online repair of realtime bitmaps
        xfs: create a new inode fork block unmap helper
        xfs: repair the inode core and forks of a metadata inode
        xfs: always check the rtbitmap and rtsummary files
        xfs: check rt summary file geometry more thoroughly
        xfs: check rt bitmap file geometry more thoroughly
      5bb4ad95
    • Chandan Babu R's avatar
      Merge tag 'repair-file-mappings-6.8_2023-12-15' of... · 98e63b91
      Chandan Babu R authored
      Merge tag 'repair-file-mappings-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: online repair of file fork mappings
      
      In this series, online repair gains the ability to rebuild data and attr
      fork mappings from the reverse mapping information.  It is at this point
      where we reintroduce the ability to reap file extents.
      
      Repair of CoW forks is a little different -- on disk, CoW staging
      extents are owned by the refcount btree and cannot be mapped back to
      individual files.  Hence we can only detect staging extents that don't
      quite look right (missing reverse mappings, shared staging extents) and
      replace them with fresh allocations.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-file-mappings-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: repair problems in CoW forks
        xfs: create a ranged query function for refcount btrees
        xfs: refactor repair forcing tests into a repair.c helper
        xfs: repair inode fork block mapping data structures
        xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents
      98e63b91
    • Chandan Babu R's avatar
      Merge tag 'repair-inodes-6.8_2023-12-15' of... · 7b63ce86
      Chandan Babu R authored
      Merge tag 'repair-inodes-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: online repair of inodes and forks
      
      In this series, online repair gains the ability to repair inode records.
      To do this, we must repair the ondisk inode and fork information enough
      to pass the iget verifiers and hence make the inode igettable again.
      Once that's done, we can perform higher level repairs on the incore
      inode.  The fstests counterpart of this patchset implements stress
      testing of repair.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-inodes-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: skip the rmapbt search on an empty attr fork unless we know it was zapped
        xfs: abort directory parent scrub scans if we encounter a zapped directory
        xfs: zap broken inode forks
        xfs: repair inode records
        xfs: set inode sick state flags when we zap either ondisk fork
        xfs: dont cast to char * for XFS_DFORK_*PTR macros
        xfs: add missing nrext64 inode flag check to scrub
        xfs: try to attach dquots to files before repairing them
        xfs: disable online repair quota helpers when quota not enabled
      7b63ce86
    • Chandan Babu R's avatar
      Merge tag 'repair-ag-btrees-6.8_2023-12-15' of... · 6e1d7b89
      Chandan Babu R authored
      Merge tag 'repair-ag-btrees-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: online repair of AG btrees
      
      Now that we've spent a lot of time reworking common code in online fsck,
      we're ready to start rebuilding the AG space btrees.  This series
      implements repair functions for the free space, inode, and refcount
      btrees.  Rebuilding the reverse mapping btree is much more intense and
      is left for a subsequent patchset.  The fstests counterpart of this
      patchset implements stress testing of repair.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-ag-btrees-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: repair refcount btrees
        xfs: repair inode btrees
        xfs: repair free space btrees
        xfs: remove trivial bnobt/inobt scrub helpers
        xfs: roll the scrub transaction after completing a repair
        xfs: move the per-AG datatype bitmaps to separate files
        xfs: create separate structures and code for u32 bitmaps
      6e1d7b89
    • Chandan Babu R's avatar
      Merge tag 'repair-prep-for-bulk-loading-6.8_2023-12-15' of... · 5e60ca3f
      Chandan Babu R authored
      Merge tag 'repair-prep-for-bulk-loading-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB
      
      xfs: prepare repair for bulk loading
      
      Before we start merging the online repair functions, let's improve the
      bulk loading code a bit.  First, we need to fix a misinteraction between
      the AIL and the btree bulkloader wherein the delwri at the end of the
      bulk load fails to queue a buffer for writeback if it happens to be on
      the AIL list.
      
      Second, we introduce a defer ops barrier object so that the process of
      reaping blocks after a repair cannot queue more than two extents per EFI
      log item.  This increases our exposure to leaking blocks if the system
      goes down during a reap, but also should prevent transaction overflows,
      which result in the system going down.
      
      Third, we change the bulkloader itself to copy multiple records into a
      block if possible, and add some debugging knobs so that developers can
      control the slack factors, just like they can do for xfs_repair.
      Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
      
      * tag 'repair-prep-for-bulk-loading-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
        xfs: constrain dirty buffers while formatting a staged btree
        xfs: move btree bulkload record initialization to ->get_record implementations
        xfs: add debug knobs to control btree bulk load slack factors
        xfs: read leaf blocks when computing keys for bulkloading into node blocks
        xfs: set XBF_DONE on newly formatted btree block that are ready for writing
        xfs: force all buffers to be written during btree bulk load
      5e60ca3f
  3. 15 Dec, 2023 27 commits