summaryrefslogtreecommitdiff
path: root/include/linux/ceph
diff options
context:
space:
mode:
authorHeinz Mauelshagen <heinzm@redhat.com>2014-10-17 13:38:50 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-11-21 09:22:53 -0800
commit513f8da83b3ef6cf1475da6ef3d851286e8466fa (patch)
treec3f9420ac5cab491dd9edc13b8a3529b5e27c1de /include/linux/ceph
parentfe30b804a20bbc3218193f0d528e9749332fb06a (diff)
dm raid: ensure superblock's size matches device's logical block size
commit 40d43c4b4cac4c2647bf07110d7b07d35f399a84 upstream. The dm-raid superblock (struct dm_raid_superblock) is padded to 512 bytes and that size is being used to read it in from the metadata device into one preallocated page. Reading or writing this on a 512-byte sector device works fine but on a 4096-byte sector device this fails. Set the dm-raid superblock's size to the logical block size of the metadata device, because IO at that size is guaranteed too work. Also add a size check to avoid silent partial metadata loss in case the superblock should ever grow past the logical block size or PAGE_SIZE. [includes pointer math fix from Dan Carpenter] Reported-by: "Liuhua Wang" <lwang@suse.com> Signed-off-by: Heinz Mauelshagen <heinzm@redhat.com> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/ceph')
0 files changed, 0 insertions, 0 deletions