public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: "Martin J. Bligh" <mbligh@aracnet.com>
Cc: paul@clubi.ie, arjanv@redhat.com, Valdis.Kletnieks@vt.edu,
	linux-kernel@vger.kernel.org
Subject: Re: 2.6.6-rc3-mm2 (4KSTACK)
Date: Fri, 7 May 2004 12:41:57 -0700	[thread overview]
Message-ID: <20040507124157.7705bf77.akpm@osdl.org> (raw)
In-Reply-To: <535920000.1083943568@[10.10.2.4]>

"Martin J. Bligh" <mbligh@aracnet.com> wrote:
>
> 2 nfs_writepage_sync is a known stack-abuser ;-) 1632 bytes on PPC64 at least
>  (from Anton's data). Maybe it's that struct nfs_write_data ?

 (from Anton's data). Maybe it's that struct nfs_write_data ?


diff -puN fs/nfs/write.c~nfs_writepage_sync-stack-reduction fs/nfs/write.c
--- 25/fs/nfs/write.c~nfs_writepage_sync-stack-reduction	2004-05-07 12:36:51.648098192 -0700
+++ 25-akpm/fs/nfs/write.c	2004-05-07 12:39:41.320304096 -0700
@@ -179,7 +179,13 @@ static int nfs_writepage_sync(struct fil
 {
 	unsigned int	wsize = NFS_SERVER(inode)->wsize;
 	int		result, written = 0;
-	struct nfs_write_data	wdata = {
+	struct nfs_write_data *wdata;
+
+	wdata = kmalloc(sizeof(*wdata), GFP_NOFS);
+	if (!wdata)
+		return -ENOMEM;
+
+	*wdata = (struct nfs_write_data) {
 		.flags		= how,
 		.cred		= NULL,
 		.inode		= inode,
@@ -192,8 +198,8 @@ static int nfs_writepage_sync(struct fil
 			.count		= wsize,
 		},
 		.res		= {
-			.fattr		= &wdata.fattr,
-			.verf		= &wdata.verf,
+			.fattr		= &wdata->fattr,
+			.verf		= &wdata->verf,
 		},
 	};
 
@@ -205,22 +211,22 @@ static int nfs_writepage_sync(struct fil
 	nfs_begin_data_update(inode);
 	do {
 		if (count < wsize)
-			wdata.args.count = count;
-		wdata.args.offset = page_offset(page) + wdata.args.pgbase;
+			wdata->args.count = count;
+		wdata->args.offset = page_offset(page) + wdata->args.pgbase;
 
-		result = NFS_PROTO(inode)->write(&wdata, file);
+		result = NFS_PROTO(inode)->write(wdata, file);
 
 		if (result < 0) {
 			/* Must mark the page invalid after I/O error */
 			ClearPageUptodate(page);
 			goto io_error;
 		}
-		if (result < wdata.args.count)
+		if (result < wdata->args.count)
 			printk(KERN_WARNING "NFS: short write, count=%u, result=%d\n",
-					wdata.args.count, result);
+					wdata->args.count, result);
 
-		wdata.args.offset += result;
-	        wdata.args.pgbase += result;
+		wdata->args.offset += result;
+	        wdata->args.pgbase += result;
 		written += result;
 		count -= result;
 	} while (count);
@@ -234,9 +240,10 @@ static int nfs_writepage_sync(struct fil
 
 io_error:
 	nfs_end_data_update_defer(inode);
-	if (wdata.cred)
-		put_rpccred(wdata.cred);
+	if (wdata->cred)
+		put_rpccred(wdata->cred);
 
+	kfree(wdata);
 	return written ? written : result;
 }
 

_


  reply	other threads:[~2004-05-07 19:58 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-05  8:31 2.6.6-rc3-mm2 Andrew Morton
2004-05-05  8:46 ` 2.6.6-rc3-mm2 Fabio Coatti
2004-05-05  9:07 ` 2.6.6-rc3-mm2 Onur Kucuk
2004-05-05 11:12 ` 2.6.6-rc3-mm2 (4KSTACK) Dominik Karall
2004-05-05 11:10   ` Ralf Hildebrandt
2004-05-05 11:13   ` Jan-Benedict Glaw
2004-05-05 11:24   ` Arjan van de Ven
2004-05-05 11:30   ` Andrew Morton
2004-05-05 12:09     ` Rene Herman
2004-05-05 16:47     ` Steve Lord
2004-05-05 18:48       ` Felipe Alfaro Solana
2004-05-05 19:51       ` Arjan van de Ven
2004-05-05 19:56         ` Steve Lord
2004-05-05 19:59         ` Arjan van de Ven
2004-05-06 17:44       ` Max Valdez
2004-05-05 20:31     ` Bill Davidsen
2004-05-05 23:04       ` Bartlomiej Zolnierkiewicz
2004-05-06 12:55         ` Norberto Bensa
2004-05-06 13:33           ` Bartlomiej Zolnierkiewicz
2004-05-06 18:47             ` Norberto Bensa
2004-05-09 17:00         ` Bill Davidsen
2004-05-09 18:25           ` Bartlomiej Zolnierkiewicz
2004-05-11 16:24             ` Bill Davidsen
2004-05-11 23:27               ` Bartlomiej Zolnierkiewicz
2004-05-11 23:50                 ` Andrew Morton
2004-05-12  0:05                   ` Valdis.Kletnieks
2004-05-12 16:07                   ` Bill Davidsen
2004-05-12 16:20                     ` Arjan van de Ven
2004-05-15 19:48                       ` Bill Davidsen
2004-05-06 10:09       ` Helge Hafting
2004-05-06 12:54         ` Bill Davidsen
2004-05-05 18:22   ` Valdis.Kletnieks
2004-05-05 21:51     ` Jörn Engel
2004-05-06 15:18       ` Valdis.Kletnieks
2004-05-06 15:40         ` Arjan van de Ven
2004-05-06 16:29           ` Valdis.Kletnieks
2004-05-07  9:50             ` Helge Hafting
2004-05-07  0:37           ` Paul Jakma
2004-05-07  2:50             ` Andrew Morton
2004-05-07  3:44               ` Paul Jakma
2004-05-07  3:58                 ` Andrew Morton
2004-05-07  7:05                   ` Arjan van de Ven
2004-05-07 15:26                   ` Martin J. Bligh
2004-05-07 19:41                     ` Andrew Morton [this message]
2004-05-07  6:51             ` Arjan van de Ven
2004-05-07 15:13               ` Dave Jones
2004-05-07 15:47                 ` Steve Lord
2004-05-07 15:59                   ` Arjan van de Ven
2004-05-07 16:09                     ` J. Bruce Fields
2004-05-07 16:11                     ` Steve Lord
2004-05-07 16:28                       ` Jörn Engel
2004-05-07 19:45               ` Paul Jakma
2004-05-07 19:48                 ` Paul Jakma
2004-05-10 19:49           ` Bill Davidsen
2004-05-10 20:31             ` Horst von Brand
2004-05-11  2:39               ` Andrew Morton
2004-05-11  8:45             ` Helge Hafting
2004-05-11 17:59               ` several messages Bill Davidsen
2004-05-06 16:03         ` 2.6.6-rc3-mm2 (4KSTACK) Malte Schröder
2004-05-06 16:13           ` Valdis.Kletnieks
2004-05-06 17:05         ` Matt Mackall
2004-05-05 13:31 ` 2.6.6-rc3-mm2 [delete-posix-...-unifix-message] Paul Jackson
2004-05-05 15:33 ` 2.6.6-rc3-mm2 Christoph Hellwig
2004-05-05 17:59   ` 2.6.6-rc3-mm2 Arnd Bergmann
2004-05-05 16:06 ` 2.6.6-rc3-mm2 Paul Jackson
2004-05-05 16:40   ` 2.6.6-rc3-mm2 Christoph Hellwig
2004-05-05 16:49     ` 2.6.6-rc3-mm2 Paul Jackson
2004-05-05 20:16   ` 2.6.6-rc3-mm2 R. J. Wysocki
2004-05-06  1:51     ` 2.6.6-rc3-mm2 Paul Jackson
2004-05-06 19:38       ` 2.6.6-rc3-mm2 R. J. Wysocki
2004-05-05 17:10 ` 2.6.6-rc3-mm2 (compile stats) John Cherry
2004-05-05 17:33 ` 2.6.6-rc3-mm2 [sparc, sparc64, mips syscall broken] Paul Jackson
2004-05-05 23:29 ` 2.6.6-rc3-mm2: vermagic compile error if CONFIG_MODULES=n Adrian Bunk
2004-05-06 14:53 ` 2.6.6-rc3-mm2 Antonio Dolcetta
2004-05-06 15:12   ` 2.6.6-rc3-mm2 Andrew Morton
2004-05-06 15:56     ` 2.6.6-rc3-mm2 Antonio Dolcetta
2004-05-06 17:26       ` 2.6.6-rc3-mm2 Adrian Bunk
2004-05-06 21:46 ` 2.6.6-rc3-mm2 Bruce Guenter
2004-05-07  2:52   ` 2.6.6-rc3-mm2 Andrew Morton
2004-05-07  4:16     ` 2.6.6-rc3-mm2 Rusty Russell
2004-05-07 16:05       ` 2.6.6-rc3-mm2 Bruce Guenter
2004-05-07 20:13       ` 2.6.6-rc3-mm2 R. J. Wysocki
2004-05-08  6:09         ` 2.6.6-rc3-mm2 Andrew Morton
     [not found]           ` <200405081329.43017.rjwysocki@sisk.pl>
2004-05-08 11:31             ` 2.6.6-rc3-mm2 Andrew Morton
2004-05-08 16:25               ` 2.6.6-rc3-mm2 R. J. Wysocki
2004-05-08 11:43             ` 2.6.6-rc3-mm2 Andrew Morton
2004-05-08 12:16               ` 2.6.6-rc3-mm2 R. J. Wysocki
2004-05-08 16:59           ` 2.6.6-rc3-mm2 Bruce Guenter
2004-05-08 18:46             ` 2.6.6-rc3-mm2 Andrew Morton
2004-05-08 18:31 ` 2.6.6-rc3-mm2 Joseph Fannin
  -- strict thread matches above, loose matches on Subject: below --
2004-05-06  9:06 2.6.6-rc3-mm2 (4KSTACK) h.verhagen
2004-05-06  9:12 h.verhagen
2004-05-06  9:48 Sid Boyce
     [not found] <1Sq6O-4gJ-25@gated-at.bofh.it>
     [not found] ` <1Sss1-7qC-53@gated-at.bofh.it>
     [not found]   ` <1SzjQ-4EY-21@gated-at.bofh.it>
     [not found]     ` <1SCB0-7kE-11@gated-at.bofh.it>
     [not found]       ` <1SSZ6-3vy-13@gated-at.bofh.it>
     [not found]         ` <1STip-3L3-11@gated-at.bofh.it>
     [not found]           ` <1T1IW-2eH-3@gated-at.bofh.it>
     [not found]             ` <1T7vo-6C2-7@gated-at.bofh.it>
     [not found]               ` <1TfiY-4s1-17@gated-at.bofh.it>
     [not found]                 ` <1TfVX-4T4-51@gated-at.bofh.it>
     [not found]                   ` <1Tg5k-55S-19@gated-at.bofh.it>
     [not found]                     ` <1Tgf4-5cp-27@gated-at.bofh.it>
2004-05-07 18:38                       ` Andi Kleen

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=20040507124157.7705bf77.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=arjanv@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mbligh@aracnet.com \
    --cc=paul@clubi.ie \
    /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