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 --- |