• Nikolay Borisov's avatar
    btrfs: remove unnecessary memory barrier in btrfs_direct_IO · dc59215d
    Nikolay Borisov authored
    Commit 38851cc1 ("Btrfs: implement unlocked dio write") implemented
    unlocked dio write, allowing multiple dio writers to write to
    non-overlapping, and non-eof-extending regions. In doing so it also
    introduced a broken memory barrier. It is broken due to 2 things:
    
    1. Memory barriers _MUST_ always be paired, this is clearly not the case
       here
    
    2. Checkpatch actually produces a warning if a memory barrier is
       introduced that doesn't have a comment explaining how it's being
       paired.
    
    Specifically for inode::i_dio_count that's wrapped inside
    inode_dio_begin, there is no explicit barrier semantics attached, so
    removing is fine as the atomic is used in common the waiter/wakeup
    pattern.
    Signed-off-by: default avatarNikolay Borisov <nborisov@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    [ enhance changelog ]
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    dc59215d
inode.c 293 KB