• Jeff Mahoney's avatar
    reiserfs: use generic readdir for operations across all xattrs · a41f1a47
    Jeff Mahoney authored
    The current reiserfs xattr implementation open codes reiserfs_readdir
    and frees the path before calling the filldir function.  Typically, the
    filldir function is something that modifies the file system, such as a
    chown or an inode deletion that also require reading of an inode
    associated with each direntry.  Since the file system is modified, the
    path retained becomes invalid for the next run.  In addition, it runs
    backwards in attempt to minimize activity.
    
    This is clearly suboptimal from a code cleanliness perspective as well
    as performance-wise.
    
    This patch implements a generic reiserfs_for_each_xattr that uses the
    generic readdir and a specific filldir routine that simply populates an
    array of dentries and then performs a specific operation on them.  When
    all files have been operated on, it then calls the operation on the
    directory itself.
    
    The result is a noticable code reduction and better performance.
    Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a41f1a47
dir.c 8.65 KB