cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Steven Whitehouse <swhiteho@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] GFS2: Move most of the remaining inode.c into ops_inode.c
Date: Sat, 24 Jan 2015 20:19:47 +0000	[thread overview]
Message-ID: <54C3FE63.7040906@redhat.com> (raw)
In-Reply-To: <20150124194503.GA22383@mwanda>

Hi,

On 24/01/15 19:45, Dan Carpenter wrote:
> Hello Steven Whitehouse,
>
> The [some really old patch], leads to the following static checker
> warning:
>
> 	fs/gfs2/inode.c:203 gfs2_inode_lookup()
> 	error: passing non negative 13 to ERR_PTR
>
> fs/gfs2/inode.c
>     167                  set_bit(GIF_INVALID, &ip->i_flags);
>     168                  error = gfs2_glock_nq_init(io_gl, LM_ST_SHARED, GL_EXACT, &ip->i_iopen_gh);
>                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> It looks like this function can return GLR_TRYFAILED.  The caller is
> only expecting normal ERR_PTRs so it could cause an oops.
This does not request a try lock, so it should never return the 
GLR_TRYFAILED value. I think the checker is perhaps not following the 
code well enough to figure that out?

Steve.

>     169                  if (unlikely(error))
>     170                          goto fail_iopen;
>     171
>     172                  ip->i_iopen_gh.gh_gl->gl_object = ip;
>     173                  gfs2_glock_put(io_gl);
>     174                  io_gl = NULL;
>     175
>     176                  if (type == DT_UNKNOWN) {
>     177                          /* Inode glock must be locked already */
>     178                          error = gfs2_inode_refresh(GFS2_I(inode));
>     179                          if (error)
>     180                                  goto fail_refresh;
>     181                  } else {
>     182                          inode->i_mode = DT2IF(type);
>     183                  }
>     184
>     185                  gfs2_set_iop(inode);
>     186                  unlock_new_inode(inode);
>     187          }
>     188
>     189          return inode;
>     190
>     191  fail_refresh:
>     192          ip->i_iopen_gh.gh_flags |= GL_NOCACHE;
>     193          ip->i_iopen_gh.gh_gl->gl_object = NULL;
>     194          gfs2_glock_dq_uninit(&ip->i_iopen_gh);
>     195  fail_iopen:
>     196          if (io_gl)
>     197                  gfs2_glock_put(io_gl);
>     198  fail_put:
>     199          ip->i_gl->gl_object = NULL;
>     200          gfs2_glock_put(ip->i_gl);
>     201  fail:
>     202          iget_failed(inode);
>     203          return ERR_PTR(error);
>     204  }
>
> Related:
> fs/gfs2/inode.c:203 gfs2_inode_lookup() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:218 gfs2_lookup_by_inum() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:243 gfs2_lookup_by_inum() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:306 gfs2_lookupi() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:324 gfs2_lookupi() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:852 __gfs2_lookup() error: passing non negative 13 to ERR_PTR
> fs/gfs2/inode.c:1567 gfs2_follow_link() error: passing non negative 13 to ERR_PTR
>
> regards,
> dan carpenter



  reply	other threads:[~2015-01-24 20:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-24 19:45 [Cluster-devel] GFS2: Move most of the remaining inode.c into ops_inode.c Dan Carpenter
2015-01-24 20:19 ` Steven Whitehouse [this message]
2015-01-26  7:57   ` Dan Carpenter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54C3FE63.7040906@redhat.com \
    --to=swhiteho@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).