• NeilBrown's avatar
    [PATCH] sysfs: Allow sysfs attribute files to be pollable · 4508a7a7
    NeilBrown authored
    It works like this:
      Open the file
      Read all the contents.
      Call poll requesting POLLERR or POLLPRI (so select/exceptfds works)
      When poll returns,
         close the file and go to top of loop.
       or lseek to start of file and go back to the 'read'.
    
    Events are signaled by an object manager calling
       sysfs_notify(kobj, dir, attr);
    
    If the dir is non-NULL, it is used to find a subdirectory which
    contains the attribute (presumably created by sysfs_create_group).
    
    This has a cost of one int  per attribute, one wait_queuehead per kobject,
    one int per open file.
    
    The name "sysfs_notify" may be confused with the inotify
    functionality.  Maybe it would be nice to support inotify for sysfs
    attributes as well?
    
    This patch also uses sysfs_notify to allow /sys/block/md*/md/sync_action
    to be pollable
    Signed-off-by: default avatarNeil Brown <neilb@suse.de>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    4508a7a7
md.c 127 KB