• Steven Whitehouse's avatar
    GFS2: Use kmalloc when possible for ->readdir() · d2a97a4e
    Steven Whitehouse authored
    If we don't need a huge amount of memory in ->readdir() then
    we can use kmalloc rather than vmalloc to allocate it. This
    should cut down on the greater overheads associated with
    vmalloc for smaller directories.
    
    We may be able to eliminate vmalloc entirely at some stage,
    but this is easy to do right away.
    
    Also using GFP_NOFS to avoid any issues wrt to deleting inodes
    while under a glock, and suggestion from Linus to factor out
    the alloc/dealloc.
    
    I've given this a test with a variety of different sized
    directories and it seems to work ok.
    
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Nick Piggin <npiggin@suse.de>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    d2a97a4e
dir.c 46.9 KB