From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bob Peterson Date: Mon, 29 Mar 2010 16:20:49 -0400 (EDT) Subject: [Cluster-devel] [PATCH] GFS2: Allow the number of committed revokes to temporarily be negative In-Reply-To: <20100311001019.GO17440@ether.msp.redhat.com> Message-ID: <163894611.227491269894049678.JavaMail.root@zmail06.collab.prod.int.phx2.redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit ----- "Benjamin Marzinski" wrote: | GFS2 tracks the number of revokes and unrevokes that are part of | committed | transactions via sd_log_commited_revoke. It is possible for one | process to add | revokes during its transaction, while another process unrevokes them | during its | transaction. If the second process finishes its transaction first, | sd_log_commited_revoke will be decremented by the number of unrevokes | that the | second process did, without first being incremented by the number of | revokes | the first process did. This is fine, since all started transactions | must be | completed before the journal can be flushed. However, | sd_log_commited_revoke | is an unsigned integer, and log_refund() causes an assertion failure | if it | would go negative at the end of a transaction. This patch makes | sd_log_commited_revoke a signed integer and allows it to go negative. | __gfs2_log_flush() still checks that it mataches the actual number of | revokes. | | Signed-off-by: Benjamin Marzinski | --- | fs/gfs2/incore.h | 2 +- | fs/gfs2/log.c | 3 +-- | 2 files changed, 2 insertions(+), 3 deletions(-) Hi, ACKed by Bob Peterson Regards, Bob Peterson Red Hat File Systems