All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <bharrosh@panasas.com>
To: Benny Halevy <bhalevy@panasas.com>,
	Trond Myklebust <Trond.Myklebust@netapp.com>,
	NFS list <linux-nfs@vger.kernel.org>
Subject: [PATCH 08/12] SQUASHME: objio alloc/free lseg Bugs fixes
Date: Tue, 24 May 2011 18:06:57 +0300	[thread overview]
Message-ID: <1306249617-23391-1-git-send-email-bharrosh@panasas.com> (raw)
In-Reply-To: <4DDBC611.3050202@panasas.com>

Wrong allocation and pointering in lseg_alloc.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
---
 fs/nfs/objlayout/objio_osd.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c
index a4201d8..167cd1e 100644
--- a/fs/nfs/objlayout/objio_osd.c
+++ b/fs/nfs/objlayout/objio_osd.c
@@ -117,7 +117,7 @@ struct objio_segment {
 	unsigned comps_index;
 	unsigned num_comps;
 	/* variable length */
-	struct objio_dev_ent *ods[1];
+	struct objio_dev_ent *ods[0];
 };
 
 static inline struct objio_segment *
@@ -278,7 +278,6 @@ extern int objio_alloc_lseg(struct pnfs_layout_segment **outp,
 	struct pnfs_osd_layout layout;
 	struct pnfs_osd_object_cred *cur_comp, src_comp;
 	struct caps_buffers *caps_p;
-
 	int err;
 
 	err = pnfs_osd_xdr_decode_layout_map(&layout, &iter, xdr);
@@ -289,14 +288,16 @@ extern int objio_alloc_lseg(struct pnfs_layout_segment **outp,
 	if (unlikely(err))
 		return err;
 
-	objio_seg = kzalloc(sizeof(*objio_seg) +
+	objio_seg = kzalloc(sizeof(*objio_seg) + 
+			    sizeof(objio_seg->ods[0]) * layout.olo_num_comps +
 			    sizeof(*objio_seg->comps) * layout.olo_num_comps +
 			    sizeof(struct caps_buffers) * layout.olo_num_comps,
 			    gfp_flags);
 	if (!objio_seg)
 		return -ENOMEM;
 
-	cur_comp = objio_seg->comps = (void *)(objio_seg + 1);
+	objio_seg->comps = (void *)(objio_seg->ods + layout.olo_num_comps);
+	cur_comp = objio_seg->comps;
 	caps_p = (void *)(cur_comp + layout.olo_num_comps);
 	while (pnfs_osd_xdr_decode_layout_comp(&src_comp, &iter, xdr, &err))
 		copy_single_comp(cur_comp++, &src_comp, caps_p++);
-- 
1.7.2.3


  parent reply	other threads:[~2011-05-24 15:07 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-24 14:52 [PATCHES 00/12] Mostly a Resend of ALL Bug fixes and SQUASHMEs - pnfs-submit 2.6.40 V7 Boaz Harrosh
2011-05-24 15:04 ` [PATCH 01/12] NFSv4.1: use layout driver in global device cache Boaz Harrosh
2011-05-24 15:04 ` [PATCH 02/12] SQUASHME: Bug in new global-device-cache code Boaz Harrosh
2011-05-24 16:52   ` Benny Halevy
2011-05-24 17:00     ` Boaz Harrosh
2011-05-24 17:02       ` Benny Halevy
2011-05-24 15:05 ` [PATCH 03/12] SQUSHME: pnfs: BUG in _deviceid_purge_client Boaz Harrosh
2011-05-24 16:57   ` Benny Halevy
2011-05-24 15:05 ` [PATCH 04/12] pnfs: layout_driver MUST set free_deviceid_node if using dev-cache Boaz Harrosh
2011-05-24 17:04   ` Benny Halevy
2011-05-24 15:06 ` [PATCH 05/12] SQUASHME: pnfs-obj: pnfs_osd_xdr.h Remove server definitions Boaz Harrosh
2011-05-24 15:06 ` [PATCH 06/12] SQUASHME: pnf-obj xdr_cli: Wrong type in comments Boaz Harrosh
2011-05-24 15:06 ` [PATCH 07/12] SQUASHME: pnfs-obj: use layout driver in global device cache Boaz Harrosh
2011-05-24 15:06 ` Boaz Harrosh [this message]
2011-05-24 17:06   ` [PATCH 08/12] SQUASHME: objio alloc/free lseg Bugs fixes Benny Halevy
2011-05-24 15:07 ` [PATCH 09/12] SQUASHME: pnfs-obj: Bugs in new global-device-cache code Boaz Harrosh
2011-05-24 17:14   ` Benny Halevy
2011-05-24 17:18     ` Boaz Harrosh
2011-05-24 15:08 ` [PATCH 10/12] SQUASHME: pnfs-obj: objlayout wants to cache devices until unmount Boaz Harrosh
2011-05-24 17:17   ` Benny Halevy
2011-05-24 15:08 ` [PATCH 11/12] SQUASHME: pnfs: Fall out from: non-rpc layout drivers Boaz Harrosh
2011-05-24 15:10 ` [PATCH 12/12] SQUASHME: objio read/write patch: Bugs fixes Boaz Harrosh

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=1306249617-23391-1-git-send-email-bharrosh@panasas.com \
    --to=bharrosh@panasas.com \
    --cc=Trond.Myklebust@netapp.com \
    --cc=bhalevy@panasas.com \
    --cc=linux-nfs@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.