Re: NFS write OOPS with 2.6.29.2

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2009-05-11 at 09:24 +0000, Holger Kiehl wrote:
> On Sun, 10 May 2009, Trond Myklebust wrote:
> 
> > On Sat, 2009-05-09 at 19:16 +0000, Holger Kiehl wrote:
> >> On Mon, 4 May 2009, Andrew Morton wrote:
> >>
> >>>
> >>> (cc linux-nfs)
> >>>
> >>> On Sun, 3 May 2009 16:03:38 +0000 (GMT) Holger Kiehl <Holger.Kiehl@xxxxxx> wrote:
> >>>
> >>>> Hello
> >>>>
> >>>> With plain kernel 2.6.29.2 I get the following OOPS (several of them) when
> >>>> writing lots of small files on the client system:
> >>>>
> >>>>     May  3 18:48:34 obelix kernel: ------------[ cut here ]------------
> >>>>     May  3 18:48:34 obelix kernel: kernel BUG at fs/nfs/write.c:252!
> >>>
> >>> I think this is a well-know bug, and fixes should be available in 2.6.29.3?
> >>>
> >> Thanks for this information. I just tried 2.6.29.3 and it still oopses.
> >> Are there any patches I can try?
> >
> > The attached backports against 2.6.29 are untested, but they are known
> > to compile at least. Could you give them a try?
> >
> Thanks. They do compile but when there is a mmap on the NFS drive the
> program gets a SIGBUS:
> 
>     unlink("/home/afdbench/afd2/fifodir/AFD_ACTIVE") = 0
>     close(3)                                = 0
>     open("/home/afdbench/afd2/fifodir/AFD_ACTIVE", O_RDWR|O_CREAT|O_TRUNC|O_CLOEXEC, 0600) = 3
>     lseek(3, 78, SEEK_SET)                  = 78
>     write(3, "\377"..., 1)                  = 1
>     mmap(NULL, 78, PROT_READ|PROT_WRITE, MAP_SHARED, 3, 0) = 0x7f8045cdb000
>     --- SIGBUS (Bus error) @ 0 (0) ---
> 
> This was with 2.6.29.3 plus the patches you send me.
> 
> Holger

Oh, duh... You need this little patchlet too.

Sorry...

Cheers
  Trond
------------------------------------------------------------------
>From 2b2ec7554cf7ec5e4412f89a5af6abe8ce950700 Mon Sep 17 00:00:00 2001
From: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Date: Tue, 7 Apr 2009 14:02:53 -0700
Subject: [PATCH] NFS: Fix the return value in nfs_page_mkwrite()

Commit c2ec175c39f62949438354f603f4aa170846aabb ("mm: page_mkwrite
change prototype to match fault") exposed a bug in the NFS
implementation of page_mkwrite.  We should be returning 0 on success...

Signed-off-by: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
---
 fs/nfs/file.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 3523b89..5a97bcf 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -516,8 +516,6 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
 		goto out_unlock;
 
 	ret = nfs_updatepage(filp, page, 0, pagelen);
-	if (ret == 0)
-		ret = pagelen;
 out_unlock:
 	unlock_page(page);
 	if (ret)
-- 
1.6.0.4



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux