]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
fixup
authorChristoph Hellwig <hch@lst.de>
Sat, 10 Aug 2024 19:39:10 +0000 (21:39 +0200)
committerChristoph Hellwig <hch@lst.de>
Mon, 12 Aug 2024 08:40:03 +0000 (10:40 +0200)
include/xfs_inode.h
include/xfs_mount.h
include/xfs_trace.h
io/inject.c
libxfs/init.c
libxfs/libxfs_priv.h
libxfs/xfs_metadir.c
libxfs/xfs_metafile.c

index aa6cb9ac46f0f45cc8a83ab1e5935a28f613ffbb..72e176aeb51f52bef0f3ecd8c50b6c30b362c66e 100644 (file)
@@ -226,7 +226,10 @@ typedef struct xfs_inode {
        struct xfs_ifork        i_af;           /* attribute fork */
        enum xfs_metafile_type  i_metatype;     /* XFS_METAFILE_* */
        struct xfs_inode_log_item *i_itemp;     /* logging information */
-       unsigned int            i_delayed_blks; /* count of delay alloc blks */
+       uint64_t                i_delayed_blks; /* count of delay alloc blks */
+       /* Space that has been set aside to root a btree in this file. */
+       uint64_t                i_meta_resv_asked;
+
        xfs_fsize_t             i_disk_size;    /* number of bytes in file */
        xfs_rfsblock_t          i_nblocks;      /* # of direct & btree blocks */
        prid_t                  i_projid;       /* owner's project id */
index 2cf1d266cd4959d5a2d42e1346b84a158c115c1a..409587ab8d6061668f6b324df4146a6864a7c347 100644 (file)
@@ -85,6 +85,7 @@ typedef struct xfs_mount {
        uint                    m_rmap_maxlevels; /* max rmap btree levels */
        uint                    m_refc_maxlevels; /* max refc btree levels */
        unsigned int            m_agbtree_maxlevels; /* max level of all AG btrees */
+       unsigned int            m_rtbtree_maxlevels; /* max level of all rt btrees */
        xfs_extlen_t            m_ag_prealloc_blocks; /* reserved ag blocks */
        uint                    m_alloc_set_aside; /* space we can't use */
        uint                    m_ag_max_usable; /* max space per AG */
index 9b01de64602235d80c1afb0263781ff6c9c6248b..d6c067e83eff508666acc72011e1f9f30b2c588f 100644 (file)
 #define trace_xfs_iunlink_reload_next(...)     ((void) 0)
 #define trace_xfs_iunlink_remove(...)          ((void) 0)
 
+#define trace_xfs_metafile_resv_alloc_space(...)       ((void) 0)
+#define trace_xfs_metafile_resv_critical(...)  ((void) 0)
+#define trace_xfs_metafile_resv_free(...)              ((void) 0)
+#define trace_xfs_metafile_resv_free_space(...)        ((void) 0)
+#define trace_xfs_metafile_resv_init(...)              ((void) 0)
+#define trace_xfs_metafile_resv_init_error(...)        ((void) 0)
+
 #endif /* __TRACE_H__ */
index 4aeb6da326b4fd166c8276c8a73e612842e52779..7b9a76406cc54dd0e3bcb963a525bd46269bc674 100644 (file)
@@ -64,6 +64,7 @@ error_tag(char *name)
                { XFS_ERRTAG_WB_DELAY_MS,               "wb_delay_ms" },
                { XFS_ERRTAG_WRITE_DELAY_MS,            "write_delay_ms" },
                { XFS_ERRTAG_EXCHMAPS_FINISH_ONE,       "exchmaps_finish_one" },
+               { XFS_ERRTAG_METAFILE_RESV_CRITICAL,    "metafile_resv_crit" },
                { XFS_ERRTAG_MAX,                       NULL }
        };
        int     count;
index b6cc472a8da6a91d5a323bd4263d31baaac751c0..28ec6420463959f84fb4d7b69cec36e6fcbc4636 100644 (file)
@@ -593,6 +593,15 @@ xfs_agbtree_compute_maxlevels(
        mp->m_agbtree_maxlevels = max(levels, mp->m_refc_maxlevels);
 }
 
+/* Compute maximum possible height for realtime btree types for this fs. */
+static inline void
+xfs_rtbtree_compute_maxlevels(
+       struct xfs_mount        *mp)
+{
+       /* This will be filled in later. */
+       mp->m_rtbtree_maxlevels = 0;
+}
+
 /* Compute maximum possible height of all btrees. */
 void
 libxfs_compute_all_maxlevels(
@@ -609,7 +618,7 @@ libxfs_compute_all_maxlevels(
        xfs_refcountbt_compute_maxlevels(mp);
 
        xfs_agbtree_compute_maxlevels(mp);
-
+       xfs_rtbtree_compute_maxlevels(mp);
 }
 
 /* Mount the metadata files under the metadata directory tree. */
index 4ac02cc066b7ea98c2a1814e1366c54f1cded1e0..9bba141ad1577b5d7fc55263f36aee323f37ed2e 100644 (file)
@@ -222,6 +222,17 @@ uint32_t get_random_u32(void);
 #define get_random_u32()       (0)
 #endif
 
+static inline int
+__percpu_counter_compare(uint64_t *count, int64_t rhs, int32_t batch)
+{
+       if (*count > rhs)
+               return 1;
+       else if (*count < rhs)
+               return -1;
+       return 0;
+}
+
+
 #define PAGE_SIZE              getpagesize()
 
 #define inode_peek_iversion(inode)     (inode)->i_version
index 207abd2be439a462eef2c9f4231b743c8426be32..9727980c0139345d44a4871996a6f3c21cfd936e 100644 (file)
@@ -29,7 +29,6 @@
 #include "xfs_parent.h"
 #include "xfs_health.h"
 #include "xfs_errortag.h"
-#include "xfs_error.h"
 #include "xfs_btree.h"
 #include "xfs_alloc.h"
 
index f16b31cd5403898446f78a3013c7d62862f48db6..5c70e1cf21d7277edaa2822307f2c42cbd2704b0 100644 (file)
@@ -17,9 +17,7 @@
 #include "xfs_metafile.h"
 #include "xfs_trace.h"
 #include "xfs_inode.h"
-#include "xfs_quota.h"
 #include "xfs_errortag.h"
-#include "xfs_error.h"
 #include "xfs_alloc.h"
 
 /* Set up an inode to be recognized as a metadata directory inode. */