• Tejun Heo's avatar
    sysfs: merge sysfs_elem_bin_attr into sysfs_elem_attr · 56b3f3b8
    Tejun Heo authored
    3124eb16 ("sysfs: merge regular and bin file handling") folded bin
    file handling into regular file handling.  Among other things, bin
    file now shares the same open path including sysfs_open_dirent
    association using sysfs_dirent->s_attr.open.  This is buggy because
    ->s_bin_attr lives in the same union and doesn't have the field.  This
    bug doesn't trigger because sysfs_elem_bin_attr doesn't have an active
    field at the conflicting position.  It does have a field "buffers" but
    it isn't used anymore.
    
    This patch collapses sysfs_elem_bin_attr into sysfs_elem_attr so that
    the bin_attr is accessed through ->s_attr.bin_attr which lives with
    ->s_attr.attr in an anonymous union.  The code paths already assume
    bin_attr contains attr as the first element, so this doesn't add any
    more assumptions while making it explicit that the two types are
    handled together.
    Signed-off-by: default avatarTejun Heo <tj@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    56b3f3b8
file.c 26.3 KB