mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Russell King <rmk@arm.linux.org.uk>
To: andrea@suse.de (Andrea Arcangeli)
Cc: mantel@suse.de (Hubert Mantel),
	linux-kernel@vger.kernel.org (Linux Kernel Mailing List),
	alan@lxorguk.ukuu.org.uk (Alan Cox)
Subject: Re: Compatibility issue with 2.2.19pre7
Date: Thu, 11 Jan 2001 07:34:01 +0000 (GMT)	[thread overview]
Message-ID: <200101110734.f0B7Y1x01512@flint.arm.linux.org.uk> (raw)
In-Reply-To: <20010111005924.L29093@athlon.random> from "Andrea Arcangeli" at Jan 11, 2001 12:59:24 AM

Andrea Arcangeli writes:
> However I'd _love_ to see the EIP where you get the fault, I currently don't
> see the line of code that is crashing your ARM and I know this code doesn't
> segfault on ARM.

Examine nlm_lookup_file() and the usage of fh->fh_dev and fh->fh_ino.
What happens is that in that dprintk fh_dev and fh_ino contain garbage
and as such, the nlm_lookup_file fails (since it doesn't refer to a valid
device and inode pair).  Therefore locking does not work.

Note: I've never said that it crashes.  I've only said that NFS locking
does not work.

> > And yes, APIs shouldn't break in a major kernel release.  Its a shame some
> > API broke in 2.2.18.
> 
> What broke in 2.2.18?

The API changed:

 struct nfs_mount_data {
        int             version;                /* 1 */
        int             fd;                     /* 1 */
-       struct nfs_fh   root;                   /* 1 */
+       struct nfs2_fh  old_root;               /* 1 */
        int             flags;                  /* 1 */
        int             rsize;                  /* 1 */
        int             wsize;                  /* 1 */
@@ -35,6 +42,7 @@
        char            hostname[256];          /* 1 */
        int             namlen;                 /* 2 */
        unsigned int    bsize;                  /* 3 */
+       struct nfs_fh   root;                   /* 4 */
 };

which then caused this breakage.  Therefore, I still propose my original
patch as a bug fix against something that appears to be brand new in
design.

Anyway, changing it back will break the API on ARM, so either way API
breakage WILL happen at some point.  The real question is which is better:

1. Yucky code in the NFS layers to copy a nfs_fh from userspace to kernel
   space, translating it into something sane.
2. Yucky code in the NFS layers to manually handle the nfs_fh to knfs_fh
   translation.
3. Accept the breakage of a *brand new* API in 2.2.18 and suffer zero
   yucky code.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |         Russell King        rmk@arm.linux.org.uk      --- ---
  | | | | http://www.arm.linux.org.uk/personal/aboutme.html   /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2001-01-11 10:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-10  0:37 Hubert Mantel
2001-01-10  0:43 ` Alan Cox
2001-01-10  6:54 ` Russell King
2001-01-10 15:31   ` Andrea Arcangeli
2001-01-10 22:09     ` Russell King
2001-01-10 23:59       ` Andrea Arcangeli
2001-01-11  7:34         ` Russell King [this message]
2001-01-11 10:33           ` Andi Kleen
2001-01-11 10:36             ` Russell King
2001-01-11 12:10           ` Manfred
2001-01-11 12:10             ` Andi Kleen
2001-01-11 12:29               ` Manfred
2001-01-11 13:27                 ` Russell King
2001-01-24  7:51         ` Richard Henderson
2001-01-24  9:02           ` Andrea Arcangeli
2001-01-24  9:51             ` Richard Henderson
2001-01-24 12:21               ` Andrea Arcangeli
2001-01-24 17:49                 ` Richard Henderson
2001-01-24 10:09             ` Thomas Pornin
2001-01-11 15:28     ` Trond Myklebust
2001-01-11 16:19       ` Manfred Spraul
2001-01-11 17:44       ` Trond Myklebust
2001-01-11 18:22         ` Trond Myklebust
2001-01-11 18:27           ` Andrea Arcangeli
2001-01-11 18:30           ` Trond Myklebust
2001-01-11 18:43             ` Andrea Arcangeli
2001-01-11 20:09               ` Russell King
2001-01-11 20:39             ` Trond Myklebust
2001-01-11 11:37   ` Trond Myklebust
2001-01-24 13:46 Jesse Pollard

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=200101110734.f0B7Y1x01512@flint.arm.linux.org.uk \
    --to=rmk@arm.linux.org.uk \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andrea@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mantel@suse.de \
    /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

Powered by JetHome