raid5-ppl.c (d8f797c60661a90ee26ca9330cf85ede9aa2ec17) raid5-ppl.c (5a8948f8a32ba56c17b3fb75d318ac98157f3ba5)
1/*
2 * Partial Parity Log for closing the RAID5 write hole
3 * Copyright (c) 2017, Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

--- 893 unchanged lines hidden (view full) ---

902 return -ENOMEM;
903
904 pplhdr = page_address(page);
905 memset(pplhdr->reserved, 0xff, PPL_HDR_RESERVED);
906 pplhdr->signature = cpu_to_le32(log->ppl_conf->signature);
907 pplhdr->checksum = cpu_to_le32(~crc32c_le(~0, pplhdr, PAGE_SIZE));
908
909 if (!sync_page_io(rdev, rdev->ppl.sector - rdev->data_offset,
1/*
2 * Partial Parity Log for closing the RAID5 write hole
3 * Copyright (c) 2017, Intel Corporation.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *

--- 893 unchanged lines hidden (view full) ---

902 return -ENOMEM;
903
904 pplhdr = page_address(page);
905 memset(pplhdr->reserved, 0xff, PPL_HDR_RESERVED);
906 pplhdr->signature = cpu_to_le32(log->ppl_conf->signature);
907 pplhdr->checksum = cpu_to_le32(~crc32c_le(~0, pplhdr, PAGE_SIZE));
908
909 if (!sync_page_io(rdev, rdev->ppl.sector - rdev->data_offset,
910 PPL_HEADER_SIZE, page, REQ_OP_WRITE | REQ_FUA, 0,
911 false)) {
910 PPL_HEADER_SIZE, page, REQ_OP_WRITE | REQ_SYNC |
911 REQ_FUA, 0, false)) {
912 md_error(rdev->mddev, rdev);
913 ret = -EIO;
914 }
915
916 __free_page(page);
917 return ret;
918}
919

--- 352 unchanged lines hidden ---
912 md_error(rdev->mddev, rdev);
913 ret = -EIO;
914 }
915
916 __free_page(page);
917 return ret;
918}
919

--- 352 unchanged lines hidden ---