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 <[EMAIL PROTECTED]>
> --
> 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;
>
>
>