gfs2: Add fields for statfs info in struct gfs2_log_header_host
authorAbhi Das <adas@redhat.com>
Tue, 20 Oct 2020 20:58:03 +0000 (15:58 -0500)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 20 Oct 2020 21:16:22 +0000 (23:16 +0200)
And read these in __get_log_header() from the log header.
Also make gfs2_statfs_change_out() non-static so it can be used
outside of super.c

Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/incore.h
fs/gfs2/recovery.c
fs/gfs2/super.c
fs/gfs2/super.h

index c3ca9b8..e34183e 100644 (file)
@@ -41,6 +41,10 @@ struct gfs2_log_header_host {
        u32 lh_flags;           /* GFS2_LOG_HEAD_... */
        u32 lh_tail;            /* Block number of log tail */
        u32 lh_blkno;
+
+       s64 lh_local_total;
+       s64 lh_local_free;
+       s64 lh_local_dinodes;
 };
 
 /*
index 390ea79..a8bb17e 100644 (file)
@@ -144,6 +144,10 @@ int __get_log_header(struct gfs2_sbd *sdp, const struct gfs2_log_header *lh,
        head->lh_tail = be32_to_cpu(lh->lh_tail);
        head->lh_blkno = be32_to_cpu(lh->lh_blkno);
 
+       head->lh_local_total = be64_to_cpu(lh->lh_local_total);
+       head->lh_local_free = be64_to_cpu(lh->lh_local_free);
+       head->lh_local_dinodes = be64_to_cpu(lh->lh_local_dinodes);
+
        return 0;
 }
 /**
index 8e250ec..e17961e 100644 (file)
@@ -230,7 +230,7 @@ void gfs2_statfs_change_in(struct gfs2_statfs_change_host *sc, const void *buf)
        sc->sc_dinodes = be64_to_cpu(str->sc_dinodes);
 }
 
-static void gfs2_statfs_change_out(const struct gfs2_statfs_change_host *sc, void *buf)
+void gfs2_statfs_change_out(const struct gfs2_statfs_change_host *sc, void *buf)
 {
        struct gfs2_statfs_change *str = buf;
 
index 5190055..ed4f5cb 100644 (file)
@@ -37,6 +37,8 @@ extern void gfs2_statfs_change(struct gfs2_sbd *sdp, s64 total, s64 free,
                               s64 dinodes);
 extern void gfs2_statfs_change_in(struct gfs2_statfs_change_host *sc,
                                  const void *buf);
+extern void gfs2_statfs_change_out(const struct gfs2_statfs_change_host *sc,
+                                  void *buf);
 extern void update_statfs(struct gfs2_sbd *sdp, struct buffer_head *m_bh,
                          struct buffer_head *l_bh);
 extern int gfs2_statfs_sync(struct super_block *sb, int type);