• Nicolai Stange's avatar
    debugfs, coccinelle: check for obsolete DEFINE_SIMPLE_ATTRIBUTE() usage · 5103068e
    Nicolai Stange authored
    In order to protect against file removal races, debugfs files created via
    debugfs_create_file() now get wrapped by a struct file_operations at their
    opening.
    
    If the original struct file_operations are known to be safe against removal
    races by themselves already, the proxy creation may be bypassed by creating
    the files through debugfs_create_file_unsafe().
    
    In order to help debugfs users who use the common
      DEFINE_SIMPLE_ATTRIBUTE() + debugfs_create_file()
    idiom to transition to removal safe struct file_operations, the helper
    macro DEFINE_DEBUGFS_ATTRIBUTE() has been introduced.
    
    Thus, the preferred strategy is to use
      DEFINE_DEBUGFS_ATTRIBUTE() + debugfs_create_file_unsafe()
    now.
    
    Introduce a Coccinelle script that searches for
    DEFINE_SIMPLE_ATTRIBUTE()-defined struct file_operations handed into
    debugfs_create_file(). Suggest to turn these usages into the
      DEFINE_DEBUGFS_ATTRIBUTE() + debugfs_create_file_unsafe()
    pattern.
    Signed-off-by: default avatarNicolai Stange <nicstange@gmail.com>
    Acked-by: default avatarJulia Lawall <Julia.Lawall@lip6.fr>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    5103068e
debugfs_simple_attr.cocci 1.75 KB