OSDN Git Service

gfs2: Minor gfs2_write_revokes cleanups
authorAndreas Gruenbacher <agruenba@redhat.com>
Sun, 6 Dec 2020 12:32:54 +0000 (13:32 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 19 Jan 2021 20:17:07 +0000 (21:17 +0100)
Clean up the computations in gfs2_write_revokes (no change in functionality).

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/log.c

index 2e93140..ccce17f 100644 (file)
@@ -712,11 +712,13 @@ void gfs2_glock_remove_revoke(struct gfs2_glock *gl)
 void gfs2_write_revokes(struct gfs2_sbd *sdp)
 {
        /* number of revokes we still have room for */
-       int max_revokes = (sdp->sd_sb.sb_bsize - sizeof(struct gfs2_log_descriptor)) / sizeof(u64);
+       unsigned int max_revokes;
 
        gfs2_log_lock(sdp);
-       while (sdp->sd_log_num_revoke > max_revokes)
-               max_revokes += (sdp->sd_sb.sb_bsize - sizeof(struct gfs2_meta_header)) / sizeof(u64);
+       max_revokes = sdp->sd_ldptrs;
+       if (sdp->sd_log_num_revoke > sdp->sd_ldptrs)
+               max_revokes += roundup(sdp->sd_log_num_revoke - sdp->sd_ldptrs,
+                                      sdp->sd_inptrs);
        max_revokes -= sdp->sd_log_num_revoke;
        if (!sdp->sd_log_num_revoke) {
                atomic_dec(&sdp->sd_log_blks_free);