Get rid of gl_waiters2
PATCH 1/1 Get rid of gl_waiters2
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(-)
fs/gfs2/glock.c +4 -3
@@ -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 ; }
fs/gfs2/incore.h +2 -2
@@ -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;
PATCH 1/1 Get rid of gl_waiters2
Hi,
Now in the -nmw git tree. Thanks,
Steve.
Quoted 74 lines · Bob Peterson
Hi,
This patch reduces memory by replacing the int variable
gl_waiters2by a single bit in thegl_flags.Regards,
Bob Peterson
Red Hat GFSSigned-off-by Bob Peterson <[email protected]>--
fs/gfs2/glock.c | 7 ++++--- fs/gfs2/incore.h | 4 ++-- 2 files changed, 6 insertions(+), 5 deletions(-)fs/gfs2/glock.c +4
-3@@ -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 ; }fs/gfs2/incore.h +2
-2@@ -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;