title: Does the qstr struct in a kernel dentry hold the filename of a Linux file?
body: <p>Below is a snippet of the Linux dentry struct from <a href="http://lxr.free-electrons.com/source/include/linux/dcache.h#L150" rel="nofollow">http://lxr.free-electrons.com/source/include/linux/dcache.h#L150</a>. The struct contains a member struct qstr d_name - definition below. I would like to know if this is the name of the particular file that would correspond to this dentry at runtime. What confuses me is that proc/PID/maps uses struct dentry_operations -> d_name (another member of dentry) to generate the file name...so then waht is the purpose of struct qstr d_name? Please note, I am approaching this from a pure memory introspection point of view (libvmi) and thus I will be "walking memory" for these structures and retrieval using C/C++ code is not so straightforward.</p>
  
  <pre><code> struct dentry {
  
       /* RCU lookup touched fields */
       unsigned int d_flags;           /* protected by d_lock */
       seqcount_t d_seq;               /* per dentry seqlock */
       struct hlist_bl_node d_hash;    /* lookup hash list */
       struct dentry *d_parent;        /* parent directory */
       struct qstr d_name;
  
                ....
  
  struct qstr {
       union {
               struct {
                        HASH_LEN_DECLARE;
               };
                u64 hash_len;
        };
       const unsigned char *name;
  };
  </code></pre>