• Dave Chinner's avatar
    xfs: block callers of xfs_flush_inodes() correctly · e43afd72
    Dave Chinner authored
    xfs_flush_inodes() currently uses a magic timeout to wait for
    some inodes to be flushed before returning. This isn't
    really reliable but used to be the best that could be done
    due to deadlock potential of waiting for the entire flush.
    
    Now the inode flush is safe to execute while we hold page
    and inode locks, we can wait for all the inodes to flush
    synchronously. Convert the wait mechanism to a completion
    to do this efficiently. This should remove all remaining
    spurious ENOSPC errors from the delayed allocation reservation
    path.
    
    This is extracted almost line for line from a larger patch
    from Mikulas Patocka.
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarDave Chinner <david@fromorbit.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    e43afd72
xfs_sync.c 18 KB