[PATCH] gfs2: sparse annotation of gl->gl_spin - Kernel

This is a discussion on [PATCH] gfs2: sparse annotation of gl->gl_spin - Kernel ; fs/gfs2/glock.c:308:5: warning: context problem in 'do_promote': '_spin_unlock' expected different context fs/gfs2/glock.c:308:5: context '*gl+28': wanted >= 1, got 0 fs/gfs2/glock.c:529:2: warning: context problem in 'do_xmote': '_spin_unlock' expected different context fs/gfs2/glock.c:529:2: context '*gl+28': wanted >= 1, got 0 fs/gfs2/glock.c:925:3: warning: context problem ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: [PATCH] gfs2: sparse annotation of gl->gl_spin

  1. [PATCH] gfs2: sparse annotation of gl->gl_spin

    fs/gfs2/glock.c:308:5: warning: context problem in 'do_promote': '_spin_unlock' expected different context
    fs/gfs2/glock.c:308:5: context '*gl+28': wanted >= 1, got 0
    fs/gfs2/glock.c:529:2: warning: context problem in 'do_xmote': '_spin_unlock' expected different context
    fs/gfs2/glock.c:529:2: context '*gl+28': wanted >= 1, got 0
    fs/gfs2/glock.c:925:3: warning: context problem in 'add_to_queue': '_spin_unlock' expected different context
    fs/gfs2/glock.c:925:3: context '*gl+28': wanted >= 1, got 0

    Signed-off-by: Harvey Harrison
    ---
    fs/gfs2/glock.c | 8 ++++++++
    1 files changed, 8 insertions(+), 0 deletions(-)

    diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
    index c962283..27cb9cc 100644
    --- a/fs/gfs2/glock.c
    +++ b/fs/gfs2/glock.c
    @@ -293,6 +293,8 @@ static void gfs2_holder_wake(struct gfs2_holder *gh)
    */

    static int do_promote(struct gfs2_glock *gl)
    +__releases(&gl->gl_spin)
    +__acquires(&gl->gl_spin)
    {
    const struct gfs2_glock_operations *glops = gl->gl_ops;
    struct gfs2_holder *gh, *tmp;
    @@ -511,6 +513,8 @@ static unsigned int gfs2_lm_lock(struct gfs2_sbd *sdp, void *lock,
    */

    static void do_xmote(struct gfs2_glock *gl, struct gfs2_holder *gh, unsigned int target)
    +__releases(&gl->gl_spin)
    +__acquires(&gl->gl_spin)
    {
    const struct gfs2_glock_operations *glops = gl->gl_ops;
    struct gfs2_sbd *sdp = gl->gl_sbd;
    @@ -576,6 +580,8 @@ static inline struct gfs2_holder *find_first_holder(const struct gfs2_glock *gl)
    */

    static void run_queue(struct gfs2_glock *gl, const int nonblock)
    +__releases(&gl->gl_spin)
    +__acquires(&gl->gl_spin)
    {
    struct gfs2_holder *gh = NULL;

    @@ -877,6 +883,8 @@ void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...)
    */

    static inline void add_to_queue(struct gfs2_holder *gh)
    +__releases(&gl->gl_spin)
    +__acquires(&gl->gl_spin)
    {
    struct gfs2_glock *gl = gh->gh_gl;
    struct gfs2_sbd *sdp = gl->gl_sbd;
    --
    1.6.0.3.723.g757e



    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH] gfs2: sparse annotation of gl->gl_spin

    Hi,

    Now in the -nmw GFS2 git tree. Thanks,

    Steve.

    On Fri, 2008-10-24 at 11:31 -0700, Harvey Harrison wrote:
    > fs/gfs2/glock.c:308:5: warning: context problem in 'do_promote': '_spin_unlock' expected different context
    > fs/gfs2/glock.c:308:5: context '*gl+28': wanted >= 1, got 0
    > fs/gfs2/glock.c:529:2: warning: context problem in 'do_xmote': '_spin_unlock' expected different context
    > fs/gfs2/glock.c:529:2: context '*gl+28': wanted >= 1, got 0
    > fs/gfs2/glock.c:925:3: warning: context problem in 'add_to_queue': '_spin_unlock' expected different context
    > fs/gfs2/glock.c:925:3: context '*gl+28': wanted >= 1, got 0
    >
    > Signed-off-by: Harvey Harrison
    > ---
    > fs/gfs2/glock.c | 8 ++++++++
    > 1 files changed, 8 insertions(+), 0 deletions(-)
    >
    > diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
    > index c962283..27cb9cc 100644
    > --- a/fs/gfs2/glock.c
    > +++ b/fs/gfs2/glock.c
    > @@ -293,6 +293,8 @@ static void gfs2_holder_wake(struct gfs2_holder *gh)
    > */
    >
    > static int do_promote(struct gfs2_glock *gl)
    > +__releases(&gl->gl_spin)
    > +__acquires(&gl->gl_spin)
    > {
    > const struct gfs2_glock_operations *glops = gl->gl_ops;
    > struct gfs2_holder *gh, *tmp;
    > @@ -511,6 +513,8 @@ static unsigned int gfs2_lm_lock(struct gfs2_sbd *sdp, void *lock,
    > */
    >
    > static void do_xmote(struct gfs2_glock *gl, struct gfs2_holder *gh, unsigned int target)
    > +__releases(&gl->gl_spin)
    > +__acquires(&gl->gl_spin)
    > {
    > const struct gfs2_glock_operations *glops = gl->gl_ops;
    > struct gfs2_sbd *sdp = gl->gl_sbd;
    > @@ -576,6 +580,8 @@ static inline struct gfs2_holder *find_first_holder(const struct gfs2_glock *gl)
    > */
    >
    > static void run_queue(struct gfs2_glock *gl, const int nonblock)
    > +__releases(&gl->gl_spin)
    > +__acquires(&gl->gl_spin)
    > {
    > struct gfs2_holder *gh = NULL;
    >
    > @@ -877,6 +883,8 @@ void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...)
    > */
    >
    > static inline void add_to_queue(struct gfs2_holder *gh)
    > +__releases(&gl->gl_spin)
    > +__acquires(&gl->gl_spin)
    > {
    > struct gfs2_glock *gl = gh->gh_gl;
    > struct gfs2_sbd *sdp = gl->gl_sbd;


    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread