* [Cluster-devel] [GFS2 PATCH] Get rid of gl_waiters2
@ 2008-01-29 4:31 Bob Peterson
2008-01-30 13:59 ` Steven Whitehouse
0 siblings, 1 reply; 2+ messages in thread
From: Bob Peterson @ 2008-01-29 4:31 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
This patch reduces memory by replacing the int variable
gl_waiters2 by a single bit in the gl_flags.
Regards,
Bob Peterson
Red Hat GFS
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
--
fs/gfs2/glock.c | 7 ++++---
fs/gfs2/incore.h | 4 ++--
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 894c70e..aa6f32e 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -594,11 +594,12 @@ static void run_queue(struct gfs2_glock *gl)
blocked = rq_mutex(gh);
} else if (test_bit(GLF_DEMOTE, &gl->gl_flags)) {
blocked = rq_demote(gl);
- if (gl->gl_waiters2 && !blocked) {
+ if (test_bit(GLF_WAITERS2, &gl->gl_flags) &&
+ !blocked) {
set_bit(GLF_DEMOTE, &gl->gl_flags);
gl->gl_demote_state = LM_ST_UNLOCKED;
}
- gl->gl_waiters2 = 0;
+ clear_bit(GLF_WAITERS2, &gl->gl_flags);
} else if (!list_empty(&gl->gl_waiters3)) {
gh = list_entry(gl->gl_waiters3.next,
struct gfs2_holder, gh_list);
@@ -704,7 +705,7 @@ static void handle_callback(struct gfs2_glock *gl, unsigned int state,
} else if (gl->gl_demote_state != LM_ST_UNLOCKED &&
gl->gl_demote_state != state) {
if (test_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags))
- gl->gl_waiters2 = 1;
+ set_bit(GLF_WAITERS2, &gl->gl_flags);
else
gl->gl_demote_state = LM_ST_UNLOCKED;
}
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index ab682c0..217ecb0 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
- * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
*
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions
@@ -167,6 +167,7 @@ enum {
GLF_DIRTY = 5,
GLF_DEMOTE_IN_PROGRESS = 6,
GLF_LFLUSH = 7,
+ GLF_WAITERS2 = 8,
};
struct gfs2_glock {
@@ -186,7 +187,6 @@ struct gfs2_glock {
struct list_head gl_holders;
struct list_head gl_waiters1; /* HIF_MUTEX */
struct list_head gl_waiters3; /* HIF_PROMOTE */
- int gl_waiters2; /* GIF_DEMOTE */
const struct gfs2_glock_operations *gl_ops;
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [Cluster-devel] [GFS2 PATCH] Get rid of gl_waiters2
2008-01-29 4:31 [Cluster-devel] [GFS2 PATCH] Get rid of gl_waiters2 Bob Peterson
@ 2008-01-30 13:59 ` Steven Whitehouse
0 siblings, 0 replies; 2+ messages in thread
From: Steven Whitehouse @ 2008-01-30 13:59 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
Now in the -nmw git tree. Thanks,
Steve.
On Mon, 2008-01-28 at 22:31 -0600, Bob Peterson wrote:
> Hi,
>
> This patch reduces memory by replacing the int variable
> gl_waiters2 by a single bit in the gl_flags.
>
> Regards,
>
> Bob Peterson
> Red Hat GFS
>
> Signed-off-by: Bob Peterson <rpeterso@redhat.com>
> --
> fs/gfs2/glock.c | 7 ++++---
> fs/gfs2/incore.h | 4 ++--
> 2 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
> index 894c70e..aa6f32e 100644
> --- a/fs/gfs2/glock.c
> +++ b/fs/gfs2/glock.c
> @@ -594,11 +594,12 @@ static void run_queue(struct gfs2_glock *gl)
> blocked = rq_mutex(gh);
> } else if (test_bit(GLF_DEMOTE, &gl->gl_flags)) {
> blocked = rq_demote(gl);
> - if (gl->gl_waiters2 && !blocked) {
> + if (test_bit(GLF_WAITERS2, &gl->gl_flags) &&
> + !blocked) {
> set_bit(GLF_DEMOTE, &gl->gl_flags);
> gl->gl_demote_state = LM_ST_UNLOCKED;
> }
> - gl->gl_waiters2 = 0;
> + clear_bit(GLF_WAITERS2, &gl->gl_flags);
> } else if (!list_empty(&gl->gl_waiters3)) {
> gh = list_entry(gl->gl_waiters3.next,
> struct gfs2_holder, gh_list);
> @@ -704,7 +705,7 @@ static void handle_callback(struct gfs2_glock *gl, unsigned int state,
> } else if (gl->gl_demote_state != LM_ST_UNLOCKED &&
> gl->gl_demote_state != state) {
> if (test_bit(GLF_DEMOTE_IN_PROGRESS, &gl->gl_flags))
> - gl->gl_waiters2 = 1;
> + set_bit(GLF_WAITERS2, &gl->gl_flags);
> else
> gl->gl_demote_state = LM_ST_UNLOCKED;
> }
> diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
> index ab682c0..217ecb0 100644
> --- a/fs/gfs2/incore.h
> +++ b/fs/gfs2/incore.h
> @@ -1,6 +1,6 @@
> /*
> * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved.
> - * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
> + * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
> *
> * This copyrighted material is made available to anyone wishing to use,
> * modify, copy, or redistribute it subject to the terms and conditions
> @@ -167,6 +167,7 @@ enum {
> GLF_DIRTY = 5,
> GLF_DEMOTE_IN_PROGRESS = 6,
> GLF_LFLUSH = 7,
> + GLF_WAITERS2 = 8,
> };
>
> struct gfs2_glock {
> @@ -186,7 +187,6 @@ struct gfs2_glock {
> struct list_head gl_holders;
> struct list_head gl_waiters1; /* HIF_MUTEX */
> struct list_head gl_waiters3; /* HIF_PROMOTE */
> - int gl_waiters2; /* GIF_DEMOTE */
>
> const struct gfs2_glock_operations *gl_ops;
>
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-01-30 13:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-29 4:31 [Cluster-devel] [GFS2 PATCH] Get rid of gl_waiters2 Bob Peterson
2008-01-30 13:59 ` Steven Whitehouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).