Messages in this thread Patch in this message |  | | Subject | Re: NFSv3 and linux-2.4.10-ac3 => oops | From | Trond Myklebust <> | Date | 02 Oct 2001 11:40:34 +0200 |
| |
>>>>> " " == H Peter Anvin <hpa@transmeta.com> writes:
> Hello everyone, I have a reproducible (and rather quick) oops > on a system running linux-2.4.10-ac3, which seems to be NFS > (v3) related; although ksymoops core dumps when I try to use > it, I have manually decoded the dump to indicate that it > happens in rwsem_down_read_failed called from nfs_file_wite. > Rather than posting too much here, I have put as much > information as I have been able to gather at:
> ftp://ftp.zytor.com/pub/hpa/oops/
I'm trying to look at this, but it seems a hopeless mess: there are no calls to any read/write semaphore routines in the NFS code.
AFAICS the second stack return point corresponds to the call to generic_file_write() in nfs_file_write(), so I'd guess that the Oops is actually happening somewhere there...
Hmm... Looking at the code in generic_file_write(), I see that Alan hasn't merged in the kmap() stuff in generic_file_write()from Linus. At the same time, the nfs_prepare_write() seems to have been synced with Linus, and so the kmap() that used to be there has disappeared.
As your config indicates that you *are* using CONFIG_HIGHMEM4G, perhaps one ought to start with a patch that fixes the obvious bug (in the hope that it'll at least clean up the next Oops)...
Cheers, Trond
--- linux-2.4.10-hpa/fs/nfs/file.c.orig Sun Sep 23 18:48:01 2001 +++ linux-2.4.10-hpa/fs/nfs/file.c Tue Oct 2 11:33:43 2001 @@ -155,7 +155,12 @@ */ static int nfs_prepare_write(struct file *file, struct page *page, unsigned offset, unsigned to) { - return nfs_flush_incompatible(file, page); + int status; + kmap(page); + status = nfs_flush_incompatible(file, page); + if (status) + kunmap(page); + return status; } static int nfs_commit_write(struct file *file, struct page *page, unsigned offset, unsigned to) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |