public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dipankar Sarma <dipankar@in.ibm.com>
To: jan malstrom <xanon@snacksy.com>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>, rjw@sisk.pl
Subject: Re: 2.6.12-mm1 (kernel BUG at fs/open.c:935!)
Date: Tue, 21 Jun 2005 01:51:45 +0530	[thread overview]
Message-ID: <20050620202145.GC4622@in.ibm.com> (raw)
In-Reply-To: <42B6BEC2.405@snacksy.com>

On Mon, Jun 20, 2005 at 03:04:02PM +0200, jan malstrom wrote:
> right at booting:
> 
> 
> Jun 20 14:38:07 hades kernel: kernel BUG at fs/open.c:935!
> Jun 20 14:38:07 hades kernel: invalid operand: 0000 [#1]
> Jun 20 14:38:07 hades kernel: PREEMPT
> Jun 20 14:38:07 hades kernel: Modules linked in: ipw2100 i2c_i801
> Jun 20 14:38:07 hades kernel: CPU:    0
> Jun 20 14:38:07 hades kernel: EIP:    0060:[fd_install+309/400]    Not 
> tainted VLI

Can you try the following patch and let me know if it fixes any
of your problems ? I have only touch tested this patch on a P4 box.
Applies on top of 2.6.12-mm1.

Thanks
Dipankar



If expand_fdtable() sees that someone else expanded the fdtable
while it dropped the lock, it can return 0 which in turn
can be returned by expand_files() even though there has
been an expansion of the fdtable since expand_files()
was originally called. This could lead to locate_fd()
not repeating the fd search and returning a bogus fd.
This patch fixes this problem.

Signed-off-by: Dipankar Sarma <dipankar@in.ibm.com>
---


 fs/file.c |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff -puN fs/file.c~fix-expand-files fs/file.c
--- linux-2.6.12-mm1-test/fs/file.c~fix-expand-files	2005-06-22 10:35:31.000000000 +0530
+++ linux-2.6.12-mm1-test-dipankar/fs/file.c	2005-06-22 10:44:56.000000000 +0530
@@ -304,13 +304,14 @@ out:
 /*
  * Expands the file descriptor table - it will allocate a new fdtable and
  * both fd array and fdset. It is expected to be called with the
- * files_lock held.
+ * files_lock held. It returns 1 if fdtable expanded or -errno if
+ * expansion failed.
  */
 static int expand_fdtable(struct files_struct *files, int nr)
 	__releases(files->file_lock)
 	__acquires(files->file_lock)
 {
-	int error = 0;
+	int error = 1;
 	struct fdtable *fdt;
 	struct fdtable *nfdt = NULL;
 
@@ -350,7 +351,7 @@ out:
  */
 int expand_files(struct files_struct *files, int nr)
 {
-	int err, expand = 0;
+	int err;
 	struct fdtable *fdt;
 
 	fdt = files_fdtable(files);
@@ -360,11 +361,9 @@ int expand_files(struct files_struct *fi
 			err = -EMFILE;
 			goto out;
 		}
-		expand = 1;
-		if ((err = expand_fdtable(files, nr)))
-			goto out;
-	}
-	err = expand;
+		err = expand_fdtable(files, nr);
+	} else 
+		err = 0;
 out:
 	return err;
 }

_

  reply	other threads:[~2005-06-20 20:28 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-20 13:04 2.6.12-mm1 (kernel BUG at fs/open.c:935!) jan malstrom
2005-06-20 20:21 ` Dipankar Sarma [this message]
2005-06-20 21:18   ` Rafael J. Wysocki
2005-06-20 21:22     ` Dipankar Sarma
2005-06-20 21:41       ` Bernhard Rosenkraenzer
2005-06-20 22:45         ` Dipankar Sarma
2005-06-20 23:06           ` Bernhard Rosenkraenzer
2005-06-21  1:06           ` syrius.ml
2005-06-20 21:48       ` Rafael J. Wysocki
2005-06-21 11:29       ` Rafael J. Wysocki
2005-06-20 21:39   ` Alexey Dobriyan

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=20050620202145.GC4622@in.ibm.com \
    --to=dipankar@in.ibm.com \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=xanon@snacksy.com \
    /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