[dm-devel] [bug report] dm: add statistics support

Dan Carpenter dan.carpenter at oracle.com
Thu Mar 15 14:25:32 UTC 2018


[ This code is half a decade old so probably removing the dead code is
  fine?  - dan ]

Hello Mikulas Patocka,

The patch fd2ed4d25270: "dm: add statistics support" from Aug 16,
2013, leads to the following static checker warning:

	drivers/md/dm-stats.c:371 dm_stats_create()
	warn: dead code because of 's->id == ((~0 >> 1))' and 'tmp_s->id < s->id'

drivers/md/dm-stats.c
   361          mutex_lock(&stats->mutex);
   362          s->id = 0;
   363          list_for_each(l, &stats->list) {
   364                  tmp_s = container_of(l, struct dm_stat, list_entry);
   365                  if (WARN_ON(tmp_s->id < s->id)) {
                                    ^^^^^^^^^^^^^^^^^
This condition means that s->id can't be INT_MAX.

   366                          r = -EINVAL;
   367                          goto out_unlock_resume;
   368                  }
   369                  if (tmp_s->id > s->id)
   370                          break;
   371                  if (unlikely(s->id == INT_MAX)) {
                                     ^^^^^^^^^^^^^^^^
So we can probably remove this dead code?  Was something else intended?

   372                          r = -ENFILE;
   373                          goto out_unlock_resume;
   374                  }
   375                  s->id++;
   376          }
   377          ret_id = s->id;
   378          list_add_tail_rcu(&s->list_entry, l);
   379          mutex_unlock(&stats->mutex);
   380  
   381          resume_callback(md);
   382  
   383          return ret_id;
   384  
   385  out_unlock_resume:
   386          mutex_unlock(&stats->mutex);
   387          resume_callback(md);
   388  out:
   389          dm_stat_free(&s->rcu_head);
   390          return r;
   391  }

regards,
dan carpenter




More information about the dm-devel mailing list