Described is a storage reports scanner that works to generate reports of
storage usage in computer systems in an efficient manner. The scanner
receives a set of namespaces for a file system volume from a storage
reports engine. The scanner scans file system metadata to construct a
directory table of entries corresponding to a directory tree of nodes
representative of the hierarchy of directories of the file system volume.
Each node corresponding to a namespace in the namespace set is marked as
included. A second scan of the file system metadata determines, for each
file, whether that file is in or under an included directory by accessing
the directory table. For each file that is in or is under an included
directory, file information is returned to the engine. The engine may
request the scanner to provide full path information, which the scanner
determines via the directory table.