From 471d7c72dab27cb7e9820c276ec3b956557ac161 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Mon, 8 Jun 2015 00:22:23 -0300 Subject: linux-libre-knock-4.0.5_gnu-1: updating version --- kernels/linux-libre-knock/PKGBUILD | 11 ++--- ...x-restore-to-sector-variable-in-raid0_mak.patch | 50 ---------------------- 2 files changed, 3 insertions(+), 58 deletions(-) delete mode 100644 kernels/linux-libre-knock/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch (limited to 'kernels') diff --git a/kernels/linux-libre-knock/PKGBUILD b/kernels/linux-libre-knock/PKGBUILD index 0700e2f8f..8f0d5948f 100644 --- a/kernels/linux-libre-knock/PKGBUILD +++ b/kernels/linux-libre-knock/PKGBUILD @@ -9,7 +9,7 @@ pkgbase=linux-libre-knock # Build stock knock kernel _pkgbasever=4.0-gnu -_pkgver=4.0.4-gnu +_pkgver=4.0.5-gnu _knockpatchver=3.18_1 _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname @@ -19,7 +19,7 @@ _replacesoldmodules=() # '%' gets replaced with _kernelname _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} -pkgrel=2 +pkgrel=1 arch=('i686' 'x86_64' 'mips64el') url="https://gnunet.org/knock" license=('GPL2') @@ -36,13 +36,12 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li # standard config files for mkinitcpio ramdisk 'linux.preset' 'logo_linux_'{clut224.ppm,vga16.ppm,mono.pbm} - 'md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch' 'change-default-console-loglevel.patch' # loongson-community patch: http://linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/debuginfo/ '4.0.2-ae91f13af5-loongson-community.patch') sha256sums=('0e2dd5be12c1f82ab3d03b89cbe3f1a20e14332ec42c102efb226a6283fdd38a' 'SKIP' - 'e447de9a53c5aefd25f0474f3304ab87076b88353badaae20dcbd85712e85e61' + '5ac82d1955fee5abccda157ef2399b34d4fd1c2310a33d19c09ca5953b308172' 'SKIP' '93a1610c203ea4c187ac5b50dce105fac86df914b1406e1d85df5857d36201c9' 'SKIP' @@ -53,7 +52,6 @@ sha256sums=('0e2dd5be12c1f82ab3d03b89cbe3f1a20e14332ec42c102efb226a6283fdd38a' 'bfd4a7f61febe63c880534dcb7c31c5b932dde6acf991810b41a939a93535494' '6de8a8319271809ffdb072b68d53d155eef12438e6d04ff06a5a4db82c34fa8a' '13bd7a8d9ed6b6bc971e4cd162262c5a20448a83796af39ce394d827b0e5de74' - 'bc83293e64653d60793708a0e277741f57c018f5ea3551a8aff3a220df917ceb' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99' '13e141279af2bc17decfc041e015710daac9a6cd1c9b4e871a76cb8f916b9e22') validpgpkeys=( @@ -89,9 +87,6 @@ prepare() { # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git - # https://bugzilla.kernel.org/show_bug.cgi?id=98501 - patch -Np1 -i "${srcdir}/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch" - # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) diff --git a/kernels/linux-libre-knock/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch b/kernels/linux-libre-knock/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch deleted file mode 100644 index 9f09102dc..000000000 --- a/kernels/linux-libre-knock/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a81157768a00e8cf8a7b43b5ea5cac931262374f Mon Sep 17 00:00:00 2001 -From: Eric Work -Date: Mon, 18 May 2015 23:26:23 -0700 -Subject: [PATCH] md/raid0: fix restore to sector variable in - raid0_make_request - -The variable "sector" in "raid0_make_request()" was improperly updated -by a call to "sector_div()" which modifies its first argument in place. -Commit 47d68979cc968535cb87f3e5f2e6a3533ea48fbd restored this variable -after the call for later re-use. Unfortunetly the restore was done after -the referenced variable "bio" was advanced. This lead to the original -value and the restored value being different. Here we move this line to -the proper place. - -One observed side effect of this bug was discarding a file though -unlinking would cause an unrelated file's contents to be discarded. - -Signed-off-by: NeilBrown -Fixes: 47d68979cc96 ("md/raid0: fix bug with chunksize not a power of 2.") -Cc: stable@vger.kernel.org (any that received above backport) -URL: https://bugzilla.kernel.org/show_bug.cgi?id=98501 ---- - drivers/md/raid0.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c -index 6a68ef5..efb654e 100644 ---- a/drivers/md/raid0.c -+++ b/drivers/md/raid0.c -@@ -524,6 +524,9 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - ? (sector & (chunk_sects-1)) - : sector_div(sector, chunk_sects)); - -+ /* Restore due to sector_div */ -+ sector = bio->bi_iter.bi_sector; -+ - if (sectors < bio_sectors(bio)) { - split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set); - bio_chain(split, bio); -@@ -531,7 +534,6 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - split = bio; - } - -- sector = bio->bi_iter.bi_sector; - zone = find_zone(mddev->private, §or); - tmp_dev = map_sector(mddev, zone, sector, §or); - split->bi_bdev = tmp_dev->bdev; --- -2.4.1 - -- cgit v1.2.3-2-g168b From 35460a1a59bd0cc0103a0eac3a09b4d0150e67dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Mon, 8 Jun 2015 00:23:06 -0300 Subject: linux-libre-lts-knock-3.14.44_gnu-1: updating version --- kernels/linux-libre-lts-knock/PKGBUILD | 6 +- kernels/linux-libre-lts-knock/gcc5_buildfixes.diff | 66 ---------------------- 2 files changed, 3 insertions(+), 69 deletions(-) (limited to 'kernels') diff --git a/kernels/linux-libre-lts-knock/PKGBUILD b/kernels/linux-libre-lts-knock/PKGBUILD index 7e35dd74c..88e0ef1c1 100644 --- a/kernels/linux-libre-lts-knock/PKGBUILD +++ b/kernels/linux-libre-lts-knock/PKGBUILD @@ -9,7 +9,7 @@ pkgbase=linux-libre-lts-knock # Build stock -lts-knock kernel _pkgbasever=3.14-gnu -_pkgver=3.14.43-gnu +_pkgver=3.14.44-gnu _knockpatchver=3.16_1 _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname @@ -46,7 +46,7 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li '3.14.26-8475f027b4-loongson-community.patch') sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b' 'SKIP' - '1c8d7336a4176e3a96de49688cb268cc5e7a44063d32a2597a339094f3f7cc16' + '684af3ce9116a1e3f099c1fe4a85b13105777637def19db0c0100cbf9952a0cd' 'SKIP' '70cbe962aa01989ffa83490bb0765d6e4c781f6133dc8d768d84bd6716ac0209' 'SKIP' @@ -62,7 +62,7 @@ sha256sums=('477555c709b9407fe37dbd70d3331ff9dde1f9d874aba2741f138d07ae6f281b' '52dec83a8805a8642d74d764494acda863e0aa23e3d249e80d4b457e20a3fd29' '65d58f63215ee3c5f9c4fc6bce36fc5311a6c7dbdbe1ad29de40647b47ff9c0d' 'cf2e7a2d00787f754028e7459688c2755a406e632ce48b60952fa4ff7ed6f4b7' - '470d6d019d288dce02b4a9758a34ea71d41715663a19a164749212a470a131e7' + '9c89039a0f876888fda3be6f574bca5a120e3587d8342747bbc0723b0b4cde7a' '7c2d1e257acce0ea6f260f3acf18e30e21c12a9a6b3d7d1d4097dafd287388e2') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva diff --git a/kernels/linux-libre-lts-knock/gcc5_buildfixes.diff b/kernels/linux-libre-lts-knock/gcc5_buildfixes.diff index f29d60674..e8a85b055 100644 --- a/kernels/linux-libre-lts-knock/gcc5_buildfixes.diff +++ b/kernels/linux-libre-lts-knock/gcc5_buildfixes.diff @@ -1,69 +1,3 @@ -From 9493c2422cae272d6f1f567cbb424195defe4176 Mon Sep 17 00:00:00 2001 -From: Chen Gang -Date: Sat, 1 Nov 2014 19:46:12 +0800 -Subject: qla2xxx: remove redundant declaration in 'qla_gbl.h' - -Remove 2 redundant extern inline functions: qla8044_set_qsnt_ready() and -qla8044_need_reset_handler(). At present, within upstream next kernel -source code, they are only used within "drivers/scsi/qla2xxx/qla_nx2.c". - -The related error and warnings (with allmodconfig under tile): - - CC [M] drivers/scsi/qla2xxx/qla_nx2.o - drivers/scsi/qla2xxx/qla_nx2.c:1633:1: error: static declaration of 'qla8044_need_reset_handler' follows non-static declaration - qla8044_need_reset_handler(struct scsi_qla_host *vha) - ^ - In file included from drivers/scsi/qla2xxx/qla_def.h:3706:0, - from drivers/scsi/qla2xxx/qla_nx2.c:11: - drivers/scsi/qla2xxx/qla_gbl.h:756:20: note: previous declaration of 'qla8044_need_reset_handler' was here - extern inline void qla8044_need_reset_handler(struct scsi_qla_host *vha); - ^ - drivers/scsi/qla2xxx/qla_gbl.h:756:20: warning: inline function 'qla8044_need_reset_handler' declared but never defined - make[3]: *** [drivers/scsi/qla2xxx/qla_nx2.o] Error 1 - make[2]: *** [drivers/scsi/qla2xxx] Error 2 - make[1]: *** [drivers/scsi] Error 2 - make: *** [drivers] Error 2 - - CC [M] drivers/scsi/qla2xxx/qla_tmpl.o - In file included from drivers/scsi/qla2xxx/qla_def.h:3706:0, - from drivers/scsi/qla2xxx/qla_tmpl.c:7: - drivers/scsi/qla2xxx/qla_gbl.h:755:20: warning: inline function 'qla8044_set_qsnt_ready' declared but never defined - extern inline void qla8044_set_qsnt_ready(struct scsi_qla_host *vha); - ^ - -Signed-off-by: Chen Gang -Acked-by: Saurav Kashyap -Signed-off-by: Christoph Hellwig - -diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h -index b1865a7..7686bfe 100644 ---- a/drivers/scsi/qla2xxx/qla_gbl.h -+++ b/drivers/scsi/qla2xxx/qla_gbl.h -@@ -752,8 +752,6 @@ extern void qla8044_set_idc_dontreset(struct scsi_qla_host *ha); - extern int qla8044_rd_direct(struct scsi_qla_host *vha, const uint32_t crb_reg); - extern void qla8044_wr_direct(struct scsi_qla_host *vha, - const uint32_t crb_reg, const uint32_t value); --extern inline void qla8044_set_qsnt_ready(struct scsi_qla_host *vha); --extern inline void qla8044_need_reset_handler(struct scsi_qla_host *vha); - extern int qla8044_device_state_handler(struct scsi_qla_host *vha); - extern void qla8044_clear_qsnt_ready(struct scsi_qla_host *vha); - extern void qla8044_clear_drv_active(struct qla_hw_data *); -diff --git a/drivers/scsi/qla2xxx/qla_nx2.c b/drivers/scsi/qla2xxx/qla_nx2.c -index 24a8528..ed4d6b6 100644 ---- a/drivers/scsi/qla2xxx/qla_nx2.c -+++ b/drivers/scsi/qla2xxx/qla_nx2.c -@@ -238,7 +238,7 @@ qla8044_rmw_crb_reg(struct scsi_qla_host *vha, - return; - } - --inline void -+static inline void - qla8044_set_qsnt_ready(struct scsi_qla_host *vha) - { - uint32_t qsnt_state; --- -cgit v0.10.2 - diff --git a/lib/mpi/mpi-inline.h b/lib/mpi/mpi-inline.h index e2b3985..c245ea3 100644 --- a/lib/mpi/mpi-inline.h -- cgit v1.2.3-2-g168b From c244f8983551d9c33e0cdae858405aa25d0001a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Fabian=20Silva=20Delgado?= Date: Mon, 8 Jun 2015 00:25:35 -0300 Subject: linux-libre-{pae,xen}-4.0.5_gnu-1: updating version --- kernels/linux-libre-pae/PKGBUILD | 11 ++--- ...x-restore-to-sector-variable-in-raid0_mak.patch | 50 ---------------------- kernels/linux-libre-xen/PKGBUILD | 11 ++--- ...x-restore-to-sector-variable-in-raid0_mak.patch | 50 ---------------------- 4 files changed, 6 insertions(+), 116 deletions(-) delete mode 100644 kernels/linux-libre-pae/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch delete mode 100644 kernels/linux-libre-xen/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch (limited to 'kernels') diff --git a/kernels/linux-libre-pae/PKGBUILD b/kernels/linux-libre-pae/PKGBUILD index 888ceaa5b..77867f1ae 100644 --- a/kernels/linux-libre-pae/PKGBUILD +++ b/kernels/linux-libre-pae/PKGBUILD @@ -9,7 +9,7 @@ pkgbase=linux-libre-pae # Build stock -pae kernel _pkgbasever=4.0-gnu -_pkgver=4.0.4-gnu +_pkgver=4.0.5-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=('kernel26%' 'kernel26-libre%') # '%' gets replaced with _kernelname @@ -18,7 +18,7 @@ _replacesoldmodules=() # '%' gets replaced with _kernelname _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} -pkgrel=2 +pkgrel=1 arch=('i686') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -33,18 +33,16 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li # standard config files for mkinitcpio ramdisk 'linux.preset' 'logo_linux_'{clut224.ppm,vga16.ppm,mono.pbm} - 'md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch' 'change-default-console-loglevel.patch') sha256sums=('0e2dd5be12c1f82ab3d03b89cbe3f1a20e14332ec42c102efb226a6283fdd38a' 'SKIP' - 'e447de9a53c5aefd25f0474f3304ab87076b88353badaae20dcbd85712e85e61' + '5ac82d1955fee5abccda157ef2399b34d4fd1c2310a33d19c09ca5953b308172' 'SKIP' 'a77c1bd4473e4a6eae2f276f4fc677054732cd282e001bbe8abab8da7fcda60a' 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' 'bfd4a7f61febe63c880534dcb7c31c5b932dde6acf991810b41a939a93535494' '6de8a8319271809ffdb072b68d53d155eef12438e6d04ff06a5a4db82c34fa8a' '13bd7a8d9ed6b6bc971e4cd162262c5a20448a83796af39ce394d827b0e5de74' - 'bc83293e64653d60793708a0e277741f57c018f5ea3551a8aff3a220df917ceb' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva @@ -70,9 +68,6 @@ prepare() { # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git - # https://bugzilla.kernel.org/show_bug.cgi?id=98501 - patch -Np1 -i "${srcdir}/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch" - # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) diff --git a/kernels/linux-libre-pae/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch b/kernels/linux-libre-pae/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch deleted file mode 100644 index 9f09102dc..000000000 --- a/kernels/linux-libre-pae/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a81157768a00e8cf8a7b43b5ea5cac931262374f Mon Sep 17 00:00:00 2001 -From: Eric Work -Date: Mon, 18 May 2015 23:26:23 -0700 -Subject: [PATCH] md/raid0: fix restore to sector variable in - raid0_make_request - -The variable "sector" in "raid0_make_request()" was improperly updated -by a call to "sector_div()" which modifies its first argument in place. -Commit 47d68979cc968535cb87f3e5f2e6a3533ea48fbd restored this variable -after the call for later re-use. Unfortunetly the restore was done after -the referenced variable "bio" was advanced. This lead to the original -value and the restored value being different. Here we move this line to -the proper place. - -One observed side effect of this bug was discarding a file though -unlinking would cause an unrelated file's contents to be discarded. - -Signed-off-by: NeilBrown -Fixes: 47d68979cc96 ("md/raid0: fix bug with chunksize not a power of 2.") -Cc: stable@vger.kernel.org (any that received above backport) -URL: https://bugzilla.kernel.org/show_bug.cgi?id=98501 ---- - drivers/md/raid0.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c -index 6a68ef5..efb654e 100644 ---- a/drivers/md/raid0.c -+++ b/drivers/md/raid0.c -@@ -524,6 +524,9 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - ? (sector & (chunk_sects-1)) - : sector_div(sector, chunk_sects)); - -+ /* Restore due to sector_div */ -+ sector = bio->bi_iter.bi_sector; -+ - if (sectors < bio_sectors(bio)) { - split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set); - bio_chain(split, bio); -@@ -531,7 +534,6 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - split = bio; - } - -- sector = bio->bi_iter.bi_sector; - zone = find_zone(mddev->private, §or); - tmp_dev = map_sector(mddev, zone, sector, §or); - split->bi_bdev = tmp_dev->bdev; --- -2.4.1 - diff --git a/kernels/linux-libre-xen/PKGBUILD b/kernels/linux-libre-xen/PKGBUILD index 4229f23a1..53e23dd9c 100644 --- a/kernels/linux-libre-xen/PKGBUILD +++ b/kernels/linux-libre-xen/PKGBUILD @@ -9,7 +9,7 @@ pkgbase=linux-libre-xen # Build stock -xen kernel _pkgbasever=4.0-gnu -_pkgver=4.0.4-gnu +_pkgver=4.0.5-gnu _replacesarchkernel=('linux%') # '%' gets replaced with _kernelname _replacesoldkernels=('kernel26%' 'kernel26-libre%') # '%' gets replaced with _kernelname @@ -18,7 +18,7 @@ _replacesoldmodules=() # '%' gets replaced with _kernelname _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} -pkgrel=2 +pkgrel=1 arch=('i686') url="http://linux-libre.fsfla.org/" license=('GPL2') @@ -33,18 +33,16 @@ source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/li # standard config files for mkinitcpio ramdisk 'linux.preset' 'logo_linux_'{clut224.ppm,vga16.ppm,mono.pbm} - 'md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch' 'change-default-console-loglevel.patch') sha256sums=('0e2dd5be12c1f82ab3d03b89cbe3f1a20e14332ec42c102efb226a6283fdd38a' 'SKIP' - 'e447de9a53c5aefd25f0474f3304ab87076b88353badaae20dcbd85712e85e61' + '5ac82d1955fee5abccda157ef2399b34d4fd1c2310a33d19c09ca5953b308172' 'SKIP' '829578ec9d35cae1f7fa559c6cab1d13ca21bc91be88f9f110e7ee70e698e659' 'f0d90e756f14533ee67afda280500511a62465b4f76adcc5effa95a40045179c' 'bfd4a7f61febe63c880534dcb7c31c5b932dde6acf991810b41a939a93535494' '6de8a8319271809ffdb072b68d53d155eef12438e6d04ff06a5a4db82c34fa8a' '13bd7a8d9ed6b6bc971e4cd162262c5a20448a83796af39ce394d827b0e5de74' - 'bc83293e64653d60793708a0e277741f57c018f5ea3551a8aff3a220df917ceb' '1256b241cd477b265a3c2d64bdc19ffe3c9bbcee82ea3994c590c2c76e767d99') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva @@ -70,9 +68,6 @@ prepare() { # add latest fixes from stable queue, if needed # http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git - # https://bugzilla.kernel.org/show_bug.cgi?id=98501 - patch -Np1 -i "${srcdir}/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch" - # set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) # remove this when a Kconfig knob is made available by upstream # (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) diff --git a/kernels/linux-libre-xen/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch b/kernels/linux-libre-xen/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch deleted file mode 100644 index 9f09102dc..000000000 --- a/kernels/linux-libre-xen/md-raid0-fix-restore-to-sector-variable-in-raid0_mak.patch +++ /dev/null @@ -1,50 +0,0 @@ -From a81157768a00e8cf8a7b43b5ea5cac931262374f Mon Sep 17 00:00:00 2001 -From: Eric Work -Date: Mon, 18 May 2015 23:26:23 -0700 -Subject: [PATCH] md/raid0: fix restore to sector variable in - raid0_make_request - -The variable "sector" in "raid0_make_request()" was improperly updated -by a call to "sector_div()" which modifies its first argument in place. -Commit 47d68979cc968535cb87f3e5f2e6a3533ea48fbd restored this variable -after the call for later re-use. Unfortunetly the restore was done after -the referenced variable "bio" was advanced. This lead to the original -value and the restored value being different. Here we move this line to -the proper place. - -One observed side effect of this bug was discarding a file though -unlinking would cause an unrelated file's contents to be discarded. - -Signed-off-by: NeilBrown -Fixes: 47d68979cc96 ("md/raid0: fix bug with chunksize not a power of 2.") -Cc: stable@vger.kernel.org (any that received above backport) -URL: https://bugzilla.kernel.org/show_bug.cgi?id=98501 ---- - drivers/md/raid0.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c -index 6a68ef5..efb654e 100644 ---- a/drivers/md/raid0.c -+++ b/drivers/md/raid0.c -@@ -524,6 +524,9 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - ? (sector & (chunk_sects-1)) - : sector_div(sector, chunk_sects)); - -+ /* Restore due to sector_div */ -+ sector = bio->bi_iter.bi_sector; -+ - if (sectors < bio_sectors(bio)) { - split = bio_split(bio, sectors, GFP_NOIO, fs_bio_set); - bio_chain(split, bio); -@@ -531,7 +534,6 @@ static void raid0_make_request(struct mddev *mddev, struct bio *bio) - split = bio; - } - -- sector = bio->bi_iter.bi_sector; - zone = find_zone(mddev->private, §or); - tmp_dev = map_sector(mddev, zone, sector, §or); - split->bi_bdev = tmp_dev->bdev; --- -2.4.1 - -- cgit v1.2.3-2-g168b