New patch attached.
1. FSnamesystem.getDatanodeListForReport excludes nodes that are listed in dfs.hosts.exclude. Maybe a better option wold be to show them with a status of "Excluded". Currently, it shows "Decommisioned" or "In Service".
Currently there is no state shown for deadnodes. Note that this method looks at dfs.hosts.exclude only for datanodes that are considered dead.
2. The comment in FSnamesystem.getDatanodeListForReport talks about "dfs.report.datanode.timeout.day" but it should be "dfs.report.datanode.timeout.hours".
Done. Good catch. You actually read the comments!
3. Maybe a unit test case that tests this functionality would be really nice.
This is a very non-consequential functionality. It only affects Namenode front page and 'dfsadmin -report'. Let me know if we really need to add a unit test. I did test it.