[GITLAB] - UPGRADE TO v12 on Wednesday the 18th of December at 11.30AM

  • Boaz Harrosh's avatar
    ore: Fix wrong math in allocation of per device BIO · ed616147
    Boaz Harrosh authored
    commit aad560b7f63b495f48a7232fd086c5913a676e6f upstream.
    
    At IO preparation we calculate the max pages at each device and
    allocate a BIO per device of that size. The calculation was wrong
    on some unaligned corner cases offset/length combination and would
    make prepare return with -ENOMEM. This would be bad for pnfs-objects
    that would in that case IO through MDS. And fatal for exofs were it
    would fail writes with EIO.
    
    Fix it by doing the proper math, that will work in all cases. (I
    ran a test with all possible offset/length combinations this time
    round).
    
    Also when reading we do not need to allocate for the parity units
    since we jump over them.
    
    Also lower the max_io_length to take into account the parity pages
    so not to allocate BIOs bigger than PAGE_SIZE
    Signed-off-by: 's avatarBoaz Harrosh <bharrosh@panasas.com>
    Signed-off-by: 's avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    ed616147
Name
Last commit
Last update
..
BUGS Loading commit data...
Kbuild Loading commit data...
Kconfig Loading commit data...
Kconfig.ore Loading commit data...
common.h Loading commit data...
dir.c Loading commit data...
exofs.h Loading commit data...
file.c Loading commit data...
inode.c Loading commit data...
namei.c Loading commit data...
ore.c Loading commit data...
ore_raid.c Loading commit data...
ore_raid.h Loading commit data...
super.c Loading commit data...
symlink.c Loading commit data...
sys.c Loading commit data...