From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
Boaz Harrosh <bharrosh@panasas.com>,
Trond Myklebust <Trond.Myklebust@netapp.com>
Subject: [07/35] pnfs-obj: Fix the comp_index != 0 case
Date: Fri, 26 Aug 2011 14:49:24 -0700 [thread overview]
Message-ID: <20110826215053.609833031@clark.kroah.org> (raw)
In-Reply-To: <20110826215139.GA11498@kroah.com>
3.0-stable review patch. If anyone has any objections, please let us know.
------------------
From: Boaz Harrosh <bharrosh@panasas.com>
commit 9af7db3228acc286c50e3a0f054ec982efdbc6c6 upstream.
There were bugs in the case of partial layout where olo_comp_index
is not zero. This used to work and was tested but one of the later
cleanup SQUASHMEs broke it and was not tested since.
Also add a dprint that specify those received layout parameters.
Everything else was already printed.
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
fs/nfs/objlayout/objio_osd.c | 16 +++++++---------
fs/nfs/objlayout/pnfs_osd_xdr_cli.c | 3 +++
2 files changed, 10 insertions(+), 9 deletions(-)
--- a/fs/nfs/objlayout/objio_osd.c
+++ b/fs/nfs/objlayout/objio_osd.c
@@ -479,7 +479,6 @@ static int _io_check(struct objio_state
for (i = 0; i < ios->numdevs; i++) {
struct osd_sense_info osi;
struct osd_request *or = ios->per_dev[i].or;
- unsigned dev;
int ret;
if (!or)
@@ -500,9 +499,8 @@ static int _io_check(struct objio_state
continue; /* we recovered */
}
- dev = ios->per_dev[i].dev;
- objlayout_io_set_result(&ios->ol_state, dev,
- &ios->layout->comps[dev].oc_object_id,
+ objlayout_io_set_result(&ios->ol_state, i,
+ &ios->layout->comps[i].oc_object_id,
osd_pri_2_pnfs_err(osi.osd_err_pri),
ios->per_dev[i].offset,
ios->per_dev[i].length,
@@ -650,7 +648,7 @@ static int _prepare_one_group(struct obj
int ret = 0;
while (length) {
- struct _objio_per_comp *per_dev = &ios->per_dev[dev];
+ struct _objio_per_comp *per_dev = &ios->per_dev[dev - first_dev];
unsigned cur_len, page_off = 0;
if (!per_dev->length) {
@@ -670,8 +668,8 @@ static int _prepare_one_group(struct obj
cur_len = stripe_unit;
}
- if (max_comp < dev)
- max_comp = dev;
+ if (max_comp < dev - first_dev)
+ max_comp = dev - first_dev;
} else {
cur_len = stripe_unit;
}
@@ -806,7 +804,7 @@ static int _read_mirrors(struct objio_st
struct _objio_per_comp *per_dev = &ios->per_dev[cur_comp];
unsigned dev = per_dev->dev;
struct pnfs_osd_object_cred *cred =
- &ios->layout->comps[dev];
+ &ios->layout->comps[cur_comp];
struct osd_obj_id obj = {
.partition = cred->oc_object_id.oid_partition_id,
.id = cred->oc_object_id.oid_object_id,
@@ -904,7 +902,7 @@ static int _write_mirrors(struct objio_s
for (; cur_comp < last_comp; ++cur_comp, ++dev) {
struct osd_request *or = NULL;
struct pnfs_osd_object_cred *cred =
- &ios->layout->comps[dev];
+ &ios->layout->comps[cur_comp];
struct osd_obj_id obj = {
.partition = cred->oc_object_id.oid_partition_id,
.id = cred->oc_object_id.oid_object_id,
--- a/fs/nfs/objlayout/pnfs_osd_xdr_cli.c
+++ b/fs/nfs/objlayout/pnfs_osd_xdr_cli.c
@@ -170,6 +170,9 @@ int pnfs_osd_xdr_decode_layout_map(struc
p = _osd_xdr_decode_data_map(p, &layout->olo_map);
layout->olo_comps_index = be32_to_cpup(p++);
layout->olo_num_comps = be32_to_cpup(p++);
+ dprintk("%s: olo_comps_index=%d olo_num_comps=%d\n", __func__,
+ layout->olo_comps_index, layout->olo_num_comps);
+
iter->total_comps = layout->olo_num_comps;
return 0;
}
next prev parent reply other threads:[~2011-08-27 14:59 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-26 21:51 [00/35] 3.0.4-stable review Greg KH
2011-08-26 21:49 ` [01/35] genirq: Fix wrong bit operation Greg KH
2011-08-26 21:49 ` [02/35] cifs: demote cERROR in build_path_from_dentry to cFYI Greg KH
2011-08-26 21:49 ` [03/35] befs: Validate length of long symbolic links Greg KH
2011-08-26 21:49 ` [04/35] i7core_edac: fixed typo in error count calculation Greg KH
2011-08-26 21:49 ` [05/35] [CIFS] possible memory corruption on mount Greg KH
2011-08-26 21:49 ` [06/35] x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message Greg KH
2011-08-26 21:49 ` Greg KH [this message]
2011-08-26 21:49 ` [08/35] pnfs-obj: Bug when we are running out of bio Greg KH
2011-08-26 21:49 ` [09/35] NFSv4.1: Fix the callback highest_used_slotid behaviour Greg KH
2011-08-26 21:49 ` [10/35] NFSv4.1: Return NFS4ERR_BADSESSION to callbacks during session resets Greg KH
2011-08-26 21:49 ` [11/35] x86, mtrr: lock stop machine during MTRR rendezvous sequence Greg KH
2011-08-26 21:49 ` [12/35] Btrfs: detect wether a device supports discard Greg KH
2011-08-26 21:49 ` [13/35] loop: fix deadlock when sysfs and LOOP_CLR_FD race against each other Greg KH
2011-08-26 21:49 ` [14/35] Btrfs: fix an oops of log replay Greg KH
2011-08-26 21:49 ` [15/35] ALSA: usb-audio - Fix missing mixer dB information Greg KH
2011-08-26 21:49 ` [16/35] ALSA: snd_usb_caiaq: track submitted output urbs Greg KH
2011-08-26 21:49 ` [17/35] ALSA: ac97: Add HP Compaq dc5100 SFF(PT003AW) to Headphone Jack Sense whitelist Greg KH
2011-08-26 21:49 ` [18/35] ext4: Fix ext4_should_writeback_data() for no-journal mode Greg KH
2011-08-26 21:49 ` [19/35] ext4: call ext4_ioend_wait and ext4_flush_completed_IO in ext4_evict_inode Greg KH
2011-08-26 21:49 ` [20/35] ext4: Resolve the hang of direct i/o read in handling EXT4_IO_END_UNWRITTEN Greg KH
2011-08-26 21:49 ` [21/35] ext4: fix nomblk_io_submit option so it correctly converts uninit blocks Greg KH
2011-08-26 21:49 ` [22/35] xen-blkfront: Drop name and minor adjustments for emulated scsi devices Greg KH
2011-08-26 21:49 ` [23/35] xen-blkfront: Fix one off warning about name clash Greg KH
2011-08-26 21:49 ` [24/35] xen/x86: replace order-based range checking of M2P table by linear one Greg KH
2011-08-26 21:49 ` [25/35] xen: Do not enable PV IPIs when vector callback not present Greg KH
2011-08-26 21:49 ` [26/35] x86, olpc: Wait for last byte of EC command to be accepted Greg KH
2011-08-26 21:49 ` [27/35] x86-32, vdso: On system call restart after SYSENTER, use int $0x80 Greg KH
2011-08-26 21:49 ` [28/35] x86, UV: Remove UV delay in starting slave cpus Greg KH
2011-08-26 21:49 ` [29/35] drm/ttm: fix ttm_bo_add_ttm(user) failure path Greg KH
2011-08-26 21:49 ` [30/35] drm/radeon: Extended DDC Probing for Toshiba L300D Radeon Mobility X1100 HDMI-A Connector Greg KH
2011-08-26 21:49 ` [31/35] fuse: check size of FUSE_NOTIFY_INVAL_ENTRY message Greg KH
2011-08-26 21:49 ` [32/35] rt2x00: fix order of entry flags modification Greg KH
2011-08-29 8:29 ` Stanislaw Gruszka
2011-08-30 21:53 ` [stable] " Greg KH
2011-08-26 21:49 ` [33/35] mmc: sdhci: fix retuning timer wrongly deleted in sdhci_tasklet_finish Greg KH
2011-08-26 21:49 ` [34/35] igb: Fix lack of flush after register write and before delay Greg KH
2011-08-26 21:49 ` [35/35] Add a personality to report 2.6.x version numbers Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110826215053.609833031@clark.kroah.org \
--to=gregkh@suse.de \
--cc=Trond.Myklebust@netapp.com \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=bharrosh@panasas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=stable-review@kernel.org \
--cc=stable@kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®