lkml.org 
[lkml]   [2010]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH][RFC] %pd - for printing dentry name
    On Tue, Feb 02, 2010 at 06:32:31AM -0700, Matthew Wilcox wrote:
    > How about doing this:
    >
    > struct qstr {
    > - const unsigned char *name;
    > + const unsigned char name[0];
    > }
    >
    > struct dentry {
    > - struct qstr d_name;
    > + struct qstr *d_name;
    > - unsigned char d_iname[DNAME_INLINE_LEN_MIN]; /* small names */
    > + union {
    > + struct qstr d_iname;
    > + char pad[DNAME_INLINE_LEN_MIN];
    > + };
    > }
    >
    > Doesn't increase the size of struct dentry, and puts the hash and len
    > with the name. Increases long name allocations by 8 bytes each.
    >
    > I think reusing the d_iname is OK. As long as we always limit the
    > number of characters printed to the 'len' element, we should never get
    > an overrun. At worst, we get a mixture of the previous name and the
    > next name ... and that's a significant canary in itself.

    You are creating an extra deref in normal case. Inline names are common.
    Putting len and hash with the name probably not a win - most of the time
    you don't look at actual characters and rely on mismatches in other
    components to skip the candidate during search.


    \
     
     \ /
      Last update: 2010-02-02 17:47    [W:0.057 / U:0.316 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site