cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
* [Cluster-devel] [bug report] [GFS2] The core of GFS2
@ 2018-07-11 12:18 Dan Carpenter
  2018-07-11 12:35 ` Steven Whitehouse
  0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2018-07-11 12:18 UTC (permalink / raw)
  To: cluster-devel.redhat.com

Hello David Teigland,

The patch b3b94faa5fe5: "[GFS2] The core of GFS2" from Jan 16, 2006,
leads to the following static checker warning:

	fs/gfs2/dir.c:1104 dir_split_leaf()
	warn: 'new' can also be NULL

fs/gfs2/dir.c
  1083          /*  Copy the entries  */
  1084          dent = (struct gfs2_dirent *)(obh->b_data + sizeof(struct gfs2_leaf));
  1085  
  1086          do {
  1087                  next = dent;
  1088                  if (dirent_next(dip, obh, &next))
  1089                          next = NULL;
  1090  
  1091                  if (!gfs2_dirent_sentinel(dent) &&
  1092                      be32_to_cpu(dent->de_hash) < divider) {
  1093                          struct qstr str;
  1094                          void *ptr = ((char *)dent - obh->b_data) + nbh->b_data;
  1095                          str.name = (char*)(dent+1);
  1096                          str.len = be16_to_cpu(dent->de_name_len);
  1097                          str.hash = be32_to_cpu(dent->de_hash);
  1098                          new = gfs2_dirent_split_alloc(inode, nbh, &str, ptr);
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This returns both NULL and error pointers.  There is no documentation
so I have no idea what the the returns mean.

  1099                          if (IS_ERR(new)) {
  1100                                  error = PTR_ERR(new);
  1101                                  break;
  1102                          }
  1103  
  1104                          new->de_inum = dent->de_inum; /* No endian worries */
  1105                          new->de_type = dent->de_type; /* No endian worries */
  1106                          be16_add_cpu(&nleaf->lf_entries, 1);
  1107  
  1108                          dirent_del(dip, obh, prev, dent);
  1109  
  1110                          if (!oleaf->lf_entries)
  1111                                  gfs2_consist_inode(dip);
  1112                          be16_add_cpu(&oleaf->lf_entries, -1);
  1113  
  1114                          if (!prev)
  1115                                  prev = dent;
  1116  
  1117                          moved = 1;
  1118                  } else {
  1119                          prev = dent;
  1120                  }
  1121                  dent = next;
  1122          } while (dent);
  1123  

regards,
dan carpenter



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-07-11 12:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-11 12:18 [Cluster-devel] [bug report] [GFS2] The core of GFS2 Dan Carpenter
2018-07-11 12:35 ` 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).