• Josef Bacik's avatar
    Btrfs: force a page fault if we have a shorty copy on a page boundary · b6316429
    Josef Bacik authored
    A user reported a problem where ceph was getting into 100% cpu usage while doing
    some writing.  It turns out it's because we were doing a short write on a not
    uptodate page, which means we'd fall back at one page at a time and fault the
    page in.  The problem is our position is on the page boundary, so our fault in
    logic wasn't actually reading the page, so we'd just spin forever or until the
    page got read in by somebody else.  This will force a readpage if we end up
    doing a short copy.  Alexandre could reproduce this easily with ceph and reports
    it fixes his problem.  I also wrote a reproducer that no longer hangs my box
    with this patch.  Thanks,
    Reported-and-tested-by: default avatarAlexandre Oliva <aoliva@redhat.com>
    Signed-off-by: default avatarJosef Bacik <josef@redhat.com>
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    b6316429
file.c 43.6 KB