• Steven Whitehouse's avatar
    [GFS2] Allow local DF locks when holding a cached EX glock · 209806ab
    Steven Whitehouse authored
    We already allow local SH locks while we hold a cached EX glock, so here
    we allow DF locks as well. This works only because we rely on the VFS's
    invalidation for locally cached data, and because if we hold an EX lock,
    then we know that no other node can be caching data relating to this
    file.
    
    It dramatically speeds up initial writes to O_DIRECT files since we fall
    back to buffered I/O for this and would otherwise bounce between DF and
    EX modes on each and every write call. The lessons to be learned from
    that are to ensure that (for the time being anyway) O_DIRECT files are
    preallocated and that they are written to using reasonably large I/O
    sizes. Even so this change fixes that corner case nicely
    Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
    209806ab
glock.c 46.5 KB